/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

#import "MTRCallbackBridgeBase_internal.h"
#import <Foundation/Foundation.h>

#include <app-common/zap-generated/cluster-objects.h>
#include <app/data-model/DecodableList.h>
#include <app/util/im-client-callbacks.h>

typedef void (*CommandSuccessCallback)(void *, const chip::app::DataModel::NullObjectType &);
using CommandSuccessCallbackType = CommandSuccessCallback;
typedef void (*DefaultSuccessCallbackType)(void *);

typedef void (*VendorIdAttributeCallback)(void *, chip::VendorId);
typedef void (*NullableVendorIdAttributeCallback)(void *, const chip::app::DataModel::Nullable<chip::VendorId> &);

typedef void (*GroupsClusterAddGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType &);
typedef void (*GroupsClusterViewGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType &);
typedef void (*GroupsClusterGetGroupMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType &);
typedef void (*GroupsClusterRemoveGroupResponseCallbackType)(
    void *, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType &);
typedef void (*ScenesClusterAddSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType &);
typedef void (*ScenesClusterViewSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType &);
typedef void (*ScenesClusterRemoveSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType &);
typedef void (*ScenesClusterRemoveAllScenesResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType &);
typedef void (*ScenesClusterStoreSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType &);
typedef void (*ScenesClusterGetSceneMembershipResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType &);
typedef void (*ScenesClusterEnhancedAddSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::EnhancedAddSceneResponse::DecodableType &);
typedef void (*ScenesClusterEnhancedViewSceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::EnhancedViewSceneResponse::DecodableType &);
typedef void (*ScenesClusterCopySceneResponseCallbackType)(
    void *, const chip::app::Clusters::Scenes::Commands::CopySceneResponse::DecodableType &);
typedef void (*OtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType &);
typedef void (*OtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType)(
    void *, const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType &);
typedef void (*GeneralCommissioningClusterArmFailSafeResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType &);
typedef void (*GeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType &);
typedef void (*GeneralCommissioningClusterCommissioningCompleteResponseCallbackType)(
    void *, const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType &);
typedef void (*NetworkCommissioningClusterScanNetworksResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType &);
typedef void (*NetworkCommissioningClusterNetworkConfigResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType &);
typedef void (*NetworkCommissioningClusterConnectNetworkResponseCallbackType)(
    void *, const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType &);
typedef void (*DiagnosticLogsClusterRetrieveLogsResponseCallbackType)(
    void *, const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType &);
typedef void (*OperationalCredentialsClusterAttestationResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType &);
typedef void (*OperationalCredentialsClusterCertificateChainResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType &);
typedef void (*OperationalCredentialsClusterCSRResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType &);
typedef void (*OperationalCredentialsClusterNOCResponseCallbackType)(
    void *, const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType &);
typedef void (*GroupKeyManagementClusterKeySetReadResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType &);
typedef void (*GroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType)(
    void *, const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType &);
typedef void (*DoorLockClusterGetWeekDayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType &);
typedef void (*DoorLockClusterGetYearDayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType &);
typedef void (*DoorLockClusterGetHolidayScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType &);
typedef void (*DoorLockClusterGetUserResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType &);
typedef void (*DoorLockClusterSetCredentialResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType &);
typedef void (*DoorLockClusterGetCredentialStatusResponseCallbackType)(
    void *, const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType &);
typedef void (*ThermostatClusterGetWeeklyScheduleResponseCallbackType)(
    void *, const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType &);
typedef void (*ChannelClusterChangeChannelResponseCallbackType)(
    void *, const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType &);
typedef void (*TargetNavigatorClusterNavigateTargetResponseCallbackType)(
    void *, const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType &);
typedef void (*MediaPlaybackClusterPlaybackResponseCallbackType)(
    void *, const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType &);
typedef void (*KeypadInputClusterSendKeyResponseCallbackType)(
    void *, const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType &);
typedef void (*ContentLauncherClusterLaunchResponseCallbackType)(
    void *, const chip::app::Clusters::ContentLauncher::Commands::LaunchResponse::DecodableType &);
typedef void (*ApplicationLauncherClusterLauncherResponseCallbackType)(
    void *, const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType &);
typedef void (*AccountLoginClusterGetSetupPINResponseCallbackType)(
    void *, const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType &);
typedef void (*TestClusterClusterTestSpecificResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestSpecificResponse::DecodableType &);
typedef void (*TestClusterClusterTestAddArgumentsResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestAddArgumentsResponse::DecodableType &);
typedef void (*TestClusterClusterTestSimpleArgumentResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestSimpleArgumentResponse::DecodableType &);
typedef void (*TestClusterClusterTestStructArrayArgumentResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestStructArrayArgumentResponse::DecodableType &);
typedef void (*TestClusterClusterTestListInt8UReverseResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestListInt8UReverseResponse::DecodableType &);
typedef void (*TestClusterClusterTestEnumsResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestEnumsResponse::DecodableType &);
typedef void (*TestClusterClusterTestNullableOptionalResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestNullableOptionalResponse::DecodableType &);
typedef void (*TestClusterClusterTestComplexNullableOptionalResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestComplexNullableOptionalResponse::DecodableType &);
typedef void (*TestClusterClusterBooleanResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::BooleanResponse::DecodableType &);
typedef void (*TestClusterClusterSimpleStructResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::SimpleStructResponse::DecodableType &);
typedef void (*TestClusterClusterTestEmitTestEventResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestEmitTestEventResponse::DecodableType &);
typedef void (*TestClusterClusterTestEmitTestFabricScopedEventResponseCallbackType)(
    void *, const chip::app::Clusters::TestCluster::Commands::TestEmitTestFabricScopedEventResponse::DecodableType &);

typedef void (*IdentifyClusterIdentifyEffectIdentifierAttributeCallback)(void *,
                                                                         chip::app::Clusters::Identify::IdentifyEffectIdentifier);
typedef void (*NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectIdentifier> &);
typedef void (*IdentifyClusterIdentifyEffectVariantAttributeCallback)(void *, chip::app::Clusters::Identify::IdentifyEffectVariant);
typedef void (*NullableIdentifyClusterIdentifyEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectVariant> &);
typedef void (*IdentifyClusterIdentifyIdentifyTypeAttributeCallback)(void *, chip::app::Clusters::Identify::IdentifyIdentifyType);
typedef void (*NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyIdentifyType> &);
typedef void (*OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback)(
    void *, chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant);
typedef void (*NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant> &);
typedef void (*OnOffClusterOnOffDyingLightEffectVariantAttributeCallback)(void *,
                                                                          chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant);
typedef void (*NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant> &);
typedef void (*OnOffClusterOnOffEffectIdentifierAttributeCallback)(void *, chip::app::Clusters::OnOff::OnOffEffectIdentifier);
typedef void (*NullableOnOffClusterOnOffEffectIdentifierAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffEffectIdentifier> &);
typedef void (*OnOffClusterOnOffStartUpOnOffAttributeCallback)(void *, chip::app::Clusters::OnOff::OnOffStartUpOnOff);
typedef void (*NullableOnOffClusterOnOffStartUpOnOffAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffStartUpOnOff> &);
typedef void (*LevelControlClusterMoveModeAttributeCallback)(void *, chip::app::Clusters::LevelControl::MoveMode);
typedef void (*NullableLevelControlClusterMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::MoveMode> &);
typedef void (*LevelControlClusterStepModeAttributeCallback)(void *, chip::app::Clusters::LevelControl::StepMode);
typedef void (*NullableLevelControlClusterStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::StepMode> &);
typedef void (*AccessControlClusterAuthModeAttributeCallback)(void *, chip::app::Clusters::AccessControl::AuthMode);
typedef void (*NullableAccessControlClusterAuthModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::AuthMode> &);
typedef void (*AccessControlClusterChangeTypeEnumAttributeCallback)(void *, chip::app::Clusters::AccessControl::ChangeTypeEnum);
typedef void (*NullableAccessControlClusterChangeTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::ChangeTypeEnum> &);
typedef void (*AccessControlClusterPrivilegeAttributeCallback)(void *, chip::app::Clusters::AccessControl::Privilege);
typedef void (*NullableAccessControlClusterPrivilegeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::Privilege> &);
typedef void (*BridgedActionsClusterActionErrorEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionErrorEnum);
typedef void (*NullableBridgedActionsClusterActionErrorEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionErrorEnum> &);
typedef void (*BridgedActionsClusterActionStateEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionStateEnum);
typedef void (*NullableBridgedActionsClusterActionStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionStateEnum> &);
typedef void (*BridgedActionsClusterActionTypeEnumAttributeCallback)(void *, chip::app::Clusters::BridgedActions::ActionTypeEnum);
typedef void (*NullableBridgedActionsClusterActionTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionTypeEnum> &);
typedef void (*BridgedActionsClusterEndpointListTypeEnumAttributeCallback)(
    void *, chip::app::Clusters::BridgedActions::EndpointListTypeEnum);
typedef void (*NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::EndpointListTypeEnum> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol> &);
typedef void (*OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus);
typedef void (*NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus> &);
typedef void (*OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason> &);
typedef void (*OtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAChangeReasonEnum);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAChangeReasonEnum> &);
typedef void (*OtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback)(
    void *, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAUpdateStateEnum);
typedef void (*NullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAUpdateStateEnum> &);
typedef void (*TimeFormatLocalizationClusterCalendarTypeAttributeCallback)(
    void *, chip::app::Clusters::TimeFormatLocalization::CalendarType);
typedef void (*NullableTimeFormatLocalizationClusterCalendarTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TimeFormatLocalization::CalendarType> &);
typedef void (*TimeFormatLocalizationClusterHourFormatAttributeCallback)(void *,
                                                                         chip::app::Clusters::TimeFormatLocalization::HourFormat);
typedef void (*NullableTimeFormatLocalizationClusterHourFormatAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TimeFormatLocalization::HourFormat> &);
typedef void (*UnitLocalizationClusterTempUnitAttributeCallback)(void *, chip::app::Clusters::UnitLocalization::TempUnit);
typedef void (*NullableUnitLocalizationClusterTempUnitAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::UnitLocalization::TempUnit> &);
typedef void (*PowerSourceClusterBatChargeFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeFault);
typedef void (*NullablePowerSourceClusterBatChargeFaultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFault> &);
typedef void (*PowerSourceClusterBatChargeLevelAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeLevel);
typedef void (*NullablePowerSourceClusterBatChargeLevelAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeLevel> &);
typedef void (*PowerSourceClusterBatChargeStateAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatChargeState);
typedef void (*NullablePowerSourceClusterBatChargeStateAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeState> &);
typedef void (*PowerSourceClusterBatFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatFault);
typedef void (*NullablePowerSourceClusterBatFaultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFault> &);
typedef void (*PowerSourceClusterBatReplaceabilityAttributeCallback)(void *, chip::app::Clusters::PowerSource::BatReplaceability);
typedef void (*NullablePowerSourceClusterBatReplaceabilityAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatReplaceability> &);
typedef void (*PowerSourceClusterPowerSourceStatusAttributeCallback)(void *, chip::app::Clusters::PowerSource::PowerSourceStatus);
typedef void (*NullablePowerSourceClusterPowerSourceStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::PowerSourceStatus> &);
typedef void (*PowerSourceClusterWiredCurrentTypeAttributeCallback)(void *, chip::app::Clusters::PowerSource::WiredCurrentType);
typedef void (*NullablePowerSourceClusterWiredCurrentTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredCurrentType> &);
typedef void (*PowerSourceClusterWiredFaultAttributeCallback)(void *, chip::app::Clusters::PowerSource::WiredFault);
typedef void (*NullablePowerSourceClusterWiredFaultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFault> &);
typedef void (*GeneralCommissioningClusterCommissioningErrorAttributeCallback)(
    void *, chip::app::Clusters::GeneralCommissioning::CommissioningError);
typedef void (*NullableGeneralCommissioningClusterCommissioningErrorAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::CommissioningError> &);
typedef void (*GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType);
typedef void (*NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType> &);
typedef void (*NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback)(
    void *, chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus);
typedef void (*NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus> &);
typedef void (*NetworkCommissioningClusterWiFiBandAttributeCallback)(void *, chip::app::Clusters::NetworkCommissioning::WiFiBand);
typedef void (*NullableNetworkCommissioningClusterWiFiBandAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::WiFiBand> &);
typedef void (*DiagnosticLogsClusterLogsIntentAttributeCallback)(void *, chip::app::Clusters::DiagnosticLogs::LogsIntent);
typedef void (*NullableDiagnosticLogsClusterLogsIntentAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsIntent> &);
typedef void (*DiagnosticLogsClusterLogsStatusAttributeCallback)(void *, chip::app::Clusters::DiagnosticLogs::LogsStatus);
typedef void (*NullableDiagnosticLogsClusterLogsStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsStatus> &);
typedef void (*DiagnosticLogsClusterLogsTransferProtocolAttributeCallback)(
    void *, chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol);
typedef void (*NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol> &);
typedef void (*GeneralDiagnosticsClusterBootReasonTypeAttributeCallback)(void *,
                                                                         chip::app::Clusters::GeneralDiagnostics::BootReasonType);
typedef void (*NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::BootReasonType> &);
typedef void (*GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralDiagnostics::HardwareFaultType);
typedef void (*NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::HardwareFaultType> &);
typedef void (*GeneralDiagnosticsClusterInterfaceTypeAttributeCallback)(void *,
                                                                        chip::app::Clusters::GeneralDiagnostics::InterfaceType);
typedef void (*NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::InterfaceType> &);
typedef void (*GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback)(
    void *, chip::app::Clusters::GeneralDiagnostics::NetworkFaultType);
typedef void (*NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::NetworkFaultType> &);
typedef void (*GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback)(void *,
                                                                         chip::app::Clusters::GeneralDiagnostics::RadioFaultType);
typedef void (*NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::RadioFaultType> &);
typedef void (*ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault);
typedef void (*NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> &);
typedef void (*ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole);
typedef void (*NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole> &);
typedef void (*ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback)(
    void *, chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus);
typedef void (*NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus> &);
typedef void (*WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause);
typedef void (*NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause> &);
typedef void (*WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType);
typedef void (*NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType> &);
typedef void (*WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus);
typedef void (*NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus> &);
typedef void (*WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback)(
    void *, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType);
typedef void (*NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType> &);
typedef void (*EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback)(
    void *, chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType);
typedef void (*NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType> &);
typedef void (*AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback)(
    void *, chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus);
typedef void (*NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus> &);
typedef void (*AdministratorCommissioningClusterStatusCodeAttributeCallback)(
    void *, chip::app::Clusters::AdministratorCommissioning::StatusCode);
typedef void (*NullableAdministratorCommissioningClusterStatusCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::StatusCode> &);
typedef void (*OperationalCredentialsClusterOperationalCertStatusAttributeCallback)(
    void *, chip::app::Clusters::OperationalCredentials::OperationalCertStatus);
typedef void (*NullableOperationalCredentialsClusterOperationalCertStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::OperationalCredentials::OperationalCertStatus> &);
typedef void (*GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback)(
    void *, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy);
typedef void (*NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy> &);
typedef void (*DoorLockClusterDlAlarmCodeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlAlarmCode);
typedef void (*NullableDoorLockClusterDlAlarmCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlAlarmCode> &);
typedef void (*DoorLockClusterDlCredentialRuleAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlCredentialRule);
typedef void (*NullableDoorLockClusterDlCredentialRuleAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialRule> &);
typedef void (*DoorLockClusterDlCredentialTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlCredentialType);
typedef void (*NullableDoorLockClusterDlCredentialTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialType> &);
typedef void (*DoorLockClusterDlDataOperationTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlDataOperationType);
typedef void (*NullableDoorLockClusterDlDataOperationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDataOperationType> &);
typedef void (*DoorLockClusterDlDoorStateAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlDoorState);
typedef void (*NullableDoorLockClusterDlDoorStateAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorState> &);
typedef void (*DoorLockClusterDlLockDataTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockDataType);
typedef void (*NullableDoorLockClusterDlLockDataTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockDataType> &);
typedef void (*DoorLockClusterDlLockOperationTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockOperationType);
typedef void (*NullableDoorLockClusterDlLockOperationTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockOperationType> &);
typedef void (*DoorLockClusterDlLockStateAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockState);
typedef void (*NullableDoorLockClusterDlLockStateAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> &);
typedef void (*DoorLockClusterDlLockTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlLockType);
typedef void (*NullableDoorLockClusterDlLockTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockType> &);
typedef void (*DoorLockClusterDlOperatingModeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperatingMode);
typedef void (*NullableDoorLockClusterDlOperatingModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperatingMode> &);
typedef void (*DoorLockClusterDlOperationErrorAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperationError);
typedef void (*NullableDoorLockClusterDlOperationErrorAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationError> &);
typedef void (*DoorLockClusterDlOperationSourceAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlOperationSource);
typedef void (*NullableDoorLockClusterDlOperationSourceAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationSource> &);
typedef void (*DoorLockClusterDlStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlStatus);
typedef void (*NullableDoorLockClusterDlStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlStatus> &);
typedef void (*DoorLockClusterDlUserStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlUserStatus);
typedef void (*NullableDoorLockClusterDlUserStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserStatus> &);
typedef void (*DoorLockClusterDlUserTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DlUserType);
typedef void (*NullableDoorLockClusterDlUserTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserType> &);
typedef void (*DoorLockClusterDoorLockOperationEventCodeAttributeCallback)(
    void *, chip::app::Clusters::DoorLock::DoorLockOperationEventCode);
typedef void (*NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockOperationEventCode> &);
typedef void (*DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback)(
    void *, chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode);
typedef void (*NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode> &);
typedef void (*DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback)(void *,
                                                                         chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus);
typedef void (*NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus> &);
typedef void (*DoorLockClusterDoorLockUserStatusAttributeCallback)(void *, chip::app::Clusters::DoorLock::DoorLockUserStatus);
typedef void (*NullableDoorLockClusterDoorLockUserStatusAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserStatus> &);
typedef void (*DoorLockClusterDoorLockUserTypeAttributeCallback)(void *, chip::app::Clusters::DoorLock::DoorLockUserType);
typedef void (*NullableDoorLockClusterDoorLockUserTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserType> &);
typedef void (*WindowCoveringClusterEndProductTypeAttributeCallback)(void *, chip::app::Clusters::WindowCovering::EndProductType);
typedef void (*NullableWindowCoveringClusterEndProductTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WindowCovering::EndProductType> &);
typedef void (*WindowCoveringClusterTypeAttributeCallback)(void *, chip::app::Clusters::WindowCovering::Type);
typedef void (*NullableWindowCoveringClusterTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::WindowCovering::Type> &);
typedef void (*PumpConfigurationAndControlClusterPumpControlModeAttributeCallback)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode);
typedef void (*NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode> &);
typedef void (*PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback)(
    void *, chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode);
typedef void (*NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode> &);
typedef void (*ThermostatClusterSetpointAdjustModeAttributeCallback)(void *, chip::app::Clusters::Thermostat::SetpointAdjustMode);
typedef void (*NullableThermostatClusterSetpointAdjustModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::SetpointAdjustMode> &);
typedef void (*ThermostatClusterThermostatControlSequenceAttributeCallback)(
    void *, chip::app::Clusters::Thermostat::ThermostatControlSequence);
typedef void (*NullableThermostatClusterThermostatControlSequenceAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatControlSequence> &);
typedef void (*ThermostatClusterThermostatRunningModeAttributeCallback)(void *,
                                                                        chip::app::Clusters::Thermostat::ThermostatRunningMode);
typedef void (*NullableThermostatClusterThermostatRunningModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatRunningMode> &);
typedef void (*ThermostatClusterThermostatSystemModeAttributeCallback)(void *,
                                                                       chip::app::Clusters::Thermostat::ThermostatSystemMode);
typedef void (*NullableThermostatClusterThermostatSystemModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatSystemMode> &);
typedef void (*FanControlClusterFanModeSequenceTypeAttributeCallback)(void *, chip::app::Clusters::FanControl::FanModeSequenceType);
typedef void (*NullableFanControlClusterFanModeSequenceTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::FanControl::FanModeSequenceType> &);
typedef void (*FanControlClusterFanModeTypeAttributeCallback)(void *, chip::app::Clusters::FanControl::FanModeType);
typedef void (*NullableFanControlClusterFanModeTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::FanControl::FanModeType> &);
typedef void (*ColorControlClusterColorLoopActionAttributeCallback)(void *, chip::app::Clusters::ColorControl::ColorLoopAction);
typedef void (*NullableColorControlClusterColorLoopActionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopAction> &);
typedef void (*ColorControlClusterColorLoopDirectionAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::ColorLoopDirection);
typedef void (*NullableColorControlClusterColorLoopDirectionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopDirection> &);
typedef void (*ColorControlClusterColorModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::ColorMode);
typedef void (*NullableColorControlClusterColorModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorMode> &);
typedef void (*ColorControlClusterHueDirectionAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueDirection);
typedef void (*NullableColorControlClusterHueDirectionAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueDirection> &);
typedef void (*ColorControlClusterHueMoveModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueMoveMode);
typedef void (*NullableColorControlClusterHueMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueMoveMode> &);
typedef void (*ColorControlClusterHueStepModeAttributeCallback)(void *, chip::app::Clusters::ColorControl::HueStepMode);
typedef void (*NullableColorControlClusterHueStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueStepMode> &);
typedef void (*ColorControlClusterSaturationMoveModeAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::SaturationMoveMode);
typedef void (*NullableColorControlClusterSaturationMoveModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationMoveMode> &);
typedef void (*ColorControlClusterSaturationStepModeAttributeCallback)(void *,
                                                                       chip::app::Clusters::ColorControl::SaturationStepMode);
typedef void (*NullableColorControlClusterSaturationStepModeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationStepMode> &);
typedef void (*IlluminanceMeasurementClusterLightSensorTypeAttributeCallback)(
    void *, chip::app::Clusters::IlluminanceMeasurement::LightSensorType);
typedef void (*NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorType> &);
typedef void (*ChannelClusterChannelStatusEnumAttributeCallback)(void *, chip::app::Clusters::Channel::ChannelStatusEnum);
typedef void (*NullableChannelClusterChannelStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::ChannelStatusEnum> &);
typedef void (*ChannelClusterLineupInfoTypeEnumAttributeCallback)(void *, chip::app::Clusters::Channel::LineupInfoTypeEnum);
typedef void (*NullableChannelClusterLineupInfoTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::LineupInfoTypeEnum> &);
typedef void (*TargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::TargetNavigator::TargetNavigatorStatusEnum);
typedef void (*NullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TargetNavigator::TargetNavigatorStatusEnum> &);
typedef void (*MediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::MediaPlayback::MediaPlaybackStatusEnum);
typedef void (*NullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::MediaPlaybackStatusEnum> &);
typedef void (*MediaPlaybackClusterPlaybackStateEnumAttributeCallback)(void *,
                                                                       chip::app::Clusters::MediaPlayback::PlaybackStateEnum);
typedef void (*NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::PlaybackStateEnum> &);
typedef void (*MediaInputClusterInputTypeEnumAttributeCallback)(void *, chip::app::Clusters::MediaInput::InputTypeEnum);
typedef void (*NullableMediaInputClusterInputTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaInput::InputTypeEnum> &);
typedef void (*KeypadInputClusterCecKeyCodeAttributeCallback)(void *, chip::app::Clusters::KeypadInput::CecKeyCode);
typedef void (*NullableKeypadInputClusterCecKeyCodeAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::CecKeyCode> &);
typedef void (*KeypadInputClusterKeypadInputStatusEnumAttributeCallback)(void *,
                                                                         chip::app::Clusters::KeypadInput::KeypadInputStatusEnum);
typedef void (*NullableKeypadInputClusterKeypadInputStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::KeypadInputStatusEnum> &);
typedef void (*ContentLauncherClusterContentLaunchStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::ContentLauncher::ContentLaunchStatusEnum);
typedef void (*NullableContentLauncherClusterContentLaunchStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ContentLaunchStatusEnum> &);
typedef void (*ContentLauncherClusterMetricTypeEnumAttributeCallback)(void *, chip::app::Clusters::ContentLauncher::MetricTypeEnum);
typedef void (*NullableContentLauncherClusterMetricTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::MetricTypeEnum> &);
typedef void (*ContentLauncherClusterParameterEnumAttributeCallback)(void *, chip::app::Clusters::ContentLauncher::ParameterEnum);
typedef void (*NullableContentLauncherClusterParameterEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ParameterEnum> &);
typedef void (*AudioOutputClusterOutputTypeEnumAttributeCallback)(void *, chip::app::Clusters::AudioOutput::OutputTypeEnum);
typedef void (*NullableAudioOutputClusterOutputTypeEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::AudioOutput::OutputTypeEnum> &);
typedef void (*ApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::ApplicationLauncher::ApplicationLauncherStatusEnum);
typedef void (*NullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::ApplicationLauncherStatusEnum> &);
typedef void (*ApplicationBasicClusterApplicationStatusEnumAttributeCallback)(
    void *, chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum);
typedef void (*NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum> &);
typedef void (*TestClusterClusterSimpleEnumAttributeCallback)(void *, chip::app::Clusters::TestCluster::SimpleEnum);
typedef void (*NullableTestClusterClusterSimpleEnumAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::SimpleEnum> &);

typedef void (*IdentifyGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*IdentifyAcceptedCommandListListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*IdentifyAttributeListListAttributeCallback)(void * context,
                                                           const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*GroupsGeneratedCommandListListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GroupsAcceptedCommandListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GroupsAttributeListListAttributeCallback)(void * context,
                                                         const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ScenesGeneratedCommandListListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ScenesAcceptedCommandListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ScenesAttributeListListAttributeCallback)(void * context,
                                                         const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OnOffGeneratedCommandListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OnOffAcceptedCommandListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OnOffAttributeListListAttributeCallback)(void * context,
                                                        const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OnOffSwitchConfigurationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OnOffSwitchConfigurationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OnOffSwitchConfigurationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*LevelControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LevelControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LevelControlAttributeListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BinaryInputBasicGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BinaryInputBasicAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BinaryInputBasicAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*DescriptorDeviceListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::DeviceType::DecodableType> & data);
typedef void (*DescriptorServerListListAttributeCallback)(void * context,
                                                          const chip::app::DataModel::DecodableList<chip::ClusterId> & data);
typedef void (*DescriptorClientListListAttributeCallback)(void * context,
                                                          const chip::app::DataModel::DecodableList<chip::ClusterId> & data);
typedef void (*DescriptorPartsListListAttributeCallback)(void * context,
                                                         const chip::app::DataModel::DecodableList<chip::EndpointId> & data);
typedef void (*DescriptorGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DescriptorAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DescriptorAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BindingBindingListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType> & data);
typedef void (*BindingGeneratedCommandListListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BindingAcceptedCommandListListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BindingAttributeListListAttributeCallback)(void * context,
                                                          const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*AccessControlAclListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::AccessControlEntry::DecodableType> &
        data);
typedef void (*AccessControlExtensionListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::ExtensionEntry::DecodableType> & data);
typedef void (*AccessControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AccessControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AccessControlAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BridgedActionsActionListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::ActionStruct::DecodableType> & data);
typedef void (*BridgedActionsEndpointListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::EndpointListStruct::DecodableType> &
        data);
typedef void (*BridgedActionsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BridgedActionsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BridgedActionsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BasicCapabilityMinimaStructAttributeCallback)(
    void *, const chip::app::Clusters::Basic::Structs::CapabilityMinimaStruct::DecodableType &);
typedef void (*BasicGeneratedCommandListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BasicAcceptedCommandListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BasicAttributeListListAttributeCallback)(void * context,
                                                        const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OtaSoftwareUpdateProviderAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<
        chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType> & data);
typedef void (*OtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OtaSoftwareUpdateRequestorAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*LocalizationConfigurationSupportedLocalesListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CharSpan> & data);
typedef void (*LocalizationConfigurationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LocalizationConfigurationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LocalizationConfigurationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*TimeFormatLocalizationSupportedCalendarTypesListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::TimeFormatLocalization::CalendarType> & data);
typedef void (*TimeFormatLocalizationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TimeFormatLocalizationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TimeFormatLocalizationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*UnitLocalizationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*UnitLocalizationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*UnitLocalizationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*PowerSourceConfigurationSourcesListAttributeCallback)(void * context,
                                                                     const chip::app::DataModel::DecodableList<uint8_t> & data);
typedef void (*PowerSourceConfigurationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PowerSourceConfigurationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PowerSourceConfigurationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*PowerSourceActiveWiredFaultsListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & data);
typedef void (*PowerSourceActiveBatFaultsListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & data);
typedef void (*PowerSourceActiveBatChargeFaultsListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & data);
typedef void (*PowerSourceGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PowerSourceAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PowerSourceAttributeListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*GeneralCommissioningBasicCommissioningInfoStructAttributeCallback)(
    void *, const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType &);
typedef void (*GeneralCommissioningGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GeneralCommissioningAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GeneralCommissioningAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*NetworkCommissioningNetworksListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType> &
        data);
typedef void (*NetworkCommissioningGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*NetworkCommissioningAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*NetworkCommissioningAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*DiagnosticLogsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DiagnosticLogsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DiagnosticLogsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*GeneralDiagnosticsNetworkInterfacesListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<
        chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & data);
typedef void (*GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<uint8_t> & data);
typedef void (*GeneralDiagnosticsActiveRadioFaultsListAttributeCallback)(void * context,
                                                                         const chip::app::DataModel::DecodableList<uint8_t> & data);
typedef void (*GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<uint8_t> & data);
typedef void (*GeneralDiagnosticsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GeneralDiagnosticsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GeneralDiagnosticsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*SoftwareDiagnosticsThreadMetricsListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetrics::DecodableType> &
        data);
typedef void (*SoftwareDiagnosticsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*SoftwareDiagnosticsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*SoftwareDiagnosticsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ThreadNetworkDiagnosticsNeighborTableListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<
        chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & data);
typedef void (*ThreadNetworkDiagnosticsRouteTableListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType> &
        data);
typedef void (*ThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallback)(
    void *,
    const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType> &);
typedef void (*ThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallback)(
    void *,
    const chip::app::DataModel::Nullable<
        chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType> &);
typedef void (*ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> & data);
typedef void (*ThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThreadNetworkDiagnosticsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*WiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WiFiNetworkDiagnosticsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*EthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*EthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*EthernetNetworkDiagnosticsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BridgedDeviceBasicGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BridgedDeviceBasicAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BridgedDeviceBasicAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*SwitchGeneratedCommandListListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*SwitchAcceptedCommandListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*SwitchAttributeListListAttributeCallback)(void * context,
                                                         const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*AdministratorCommissioningGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AdministratorCommissioningAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AdministratorCommissioningAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OperationalCredentialsNOCsListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType> &
        data);
typedef void (*OperationalCredentialsFabricsListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<
        chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & data);
typedef void (*OperationalCredentialsTrustedRootCertificatesListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & data);
typedef void (*OperationalCredentialsGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OperationalCredentialsAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OperationalCredentialsAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*GroupKeyManagementGroupKeyMapListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType> &
        data);
typedef void (*GroupKeyManagementGroupTableListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType> &
        data);
typedef void (*GroupKeyManagementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GroupKeyManagementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*GroupKeyManagementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*FixedLabelLabelListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::FixedLabel::Structs::LabelStruct::DecodableType> & data);
typedef void (*FixedLabelGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FixedLabelAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FixedLabelAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*UserLabelLabelListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::UserLabel::Structs::LabelStruct::DecodableType> & data);
typedef void (*UserLabelGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*UserLabelAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*UserLabelAttributeListListAttributeCallback)(void * context,
                                                            const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BooleanStateGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BooleanStateAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BooleanStateAttributeListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ModeSelectSupportedModesListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType> & data);
typedef void (*ModeSelectGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ModeSelectAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ModeSelectAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*DoorLockCredentialRulesSupportAttributeCallback)(void *,
                                                                chip::BitMask<chip::app::Clusters::DoorLock::DlCredentialRuleMask>);
typedef void (*DoorLockSupportedOperatingModesAttributeCallback)(
    void *, chip::BitMask<chip::app::Clusters::DoorLock::DlSupportedOperatingModes>);
typedef void (*DoorLockDefaultConfigurationRegisterAttributeCallback)(
    void *, chip::BitMask<chip::app::Clusters::DoorLock::DlDefaultConfigurationRegister>);
typedef void (*DoorLockLocalProgrammingFeaturesAttributeCallback)(
    void *, chip::BitMask<chip::app::Clusters::DoorLock::DlLocalProgrammingFeatures>);
typedef void (*DoorLockGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DoorLockAcceptedCommandListListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*DoorLockAttributeListListAttributeCallback)(void * context,
                                                           const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*WindowCoveringConfigStatusAttributeCallback)(void *,
                                                            chip::BitMask<chip::app::Clusters::WindowCovering::ConfigStatus>);
typedef void (*WindowCoveringOperationalStatusAttributeCallback)(
    void *, chip::BitMask<chip::app::Clusters::WindowCovering::OperationalStatus>);
typedef void (*WindowCoveringModeAttributeCallback)(void *, chip::BitMask<chip::app::Clusters::WindowCovering::Mode>);
typedef void (*WindowCoveringSafetyStatusAttributeCallback)(void *,
                                                            chip::BitMask<chip::app::Clusters::WindowCovering::SafetyStatus>);
typedef void (*WindowCoveringGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WindowCoveringAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WindowCoveringAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BarrierControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BarrierControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BarrierControlAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*PumpConfigurationAndControlPumpStatusAttributeCallback)(
    void *, chip::BitMask<chip::app::Clusters::PumpConfigurationAndControl::PumpStatus>);
typedef void (*PumpConfigurationAndControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PumpConfigurationAndControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PumpConfigurationAndControlAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ThermostatGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThermostatAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThermostatAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*FanControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FanControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FanControlAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ColorControlGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ColorControlAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ColorControlAttributeListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*BallastConfigurationGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BallastConfigurationAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*BallastConfigurationAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*IlluminanceMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*IlluminanceMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*IlluminanceMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*TemperatureMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TemperatureMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TemperatureMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*PressureMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PressureMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*PressureMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*FlowMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FlowMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*FlowMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*RelativeHumidityMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*RelativeHumidityMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*RelativeHumidityMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*OccupancySensingGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OccupancySensingAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*OccupancySensingAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*WakeOnLanGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WakeOnLanAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*WakeOnLanAttributeListListAttributeCallback)(void * context,
                                                            const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ChannelChannelListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::Channel::Structs::ChannelInfo::DecodableType> & data);
typedef void (*ChannelLineupStructAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfo::DecodableType> &);
typedef void (*ChannelCurrentChannelStructAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfo::DecodableType> &);
typedef void (*ChannelGeneratedCommandListListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ChannelAcceptedCommandListListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ChannelAttributeListListAttributeCallback)(void * context,
                                                          const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*TargetNavigatorTargetListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::TargetNavigator::Structs::TargetInfo::DecodableType> & data);
typedef void (*TargetNavigatorGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TargetNavigatorAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TargetNavigatorAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*MediaPlaybackSampledPositionStructAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPosition::DecodableType> &);
typedef void (*MediaPlaybackGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*MediaPlaybackAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*MediaPlaybackAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*MediaInputInputListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::MediaInput::Structs::InputInfo::DecodableType> & data);
typedef void (*MediaInputGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*MediaInputAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*MediaInputAttributeListListAttributeCallback)(void * context,
                                                             const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*LowPowerGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LowPowerAcceptedCommandListListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*LowPowerAttributeListListAttributeCallback)(void * context,
                                                           const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*KeypadInputGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*KeypadInputAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*KeypadInputAttributeListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ContentLauncherAcceptHeaderListAttributeCallback)(void * context,
                                                                 const chip::app::DataModel::DecodableList<chip::CharSpan> & data);
typedef void (*ContentLauncherGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ContentLauncherAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ContentLauncherAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*AudioOutputOutputListListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::AudioOutput::Structs::OutputInfo::DecodableType> & data);
typedef void (*AudioOutputGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AudioOutputAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AudioOutputAttributeListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ApplicationLauncherCatalogListListAttributeCallback)(void * context,
                                                                    const chip::app::DataModel::DecodableList<uint16_t> & data);
typedef void (*ApplicationLauncherCurrentAppStructAttributeCallback)(
    void *,
    const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEP::DecodableType> &);
typedef void (*ApplicationLauncherGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ApplicationLauncherAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ApplicationLauncherAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ApplicationBasicApplicationStructAttributeCallback)(
    void *, const chip::app::Clusters::ApplicationBasic::Structs::ApplicationBasicApplication::DecodableType &);
typedef void (*ApplicationBasicAllowedVendorListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::VendorId> & data);
typedef void (*ApplicationBasicGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ApplicationBasicAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ApplicationBasicAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*AccountLoginGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AccountLoginAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*AccountLoginAttributeListListAttributeCallback)(void * context,
                                                               const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*ElectricalMeasurementGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ElectricalMeasurementAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*ElectricalMeasurementAttributeListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & data);
typedef void (*TestClusterBitmap8AttributeCallback)(void *, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap8MaskMap>);
typedef void (*TestClusterBitmap16AttributeCallback)(void *, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap16MaskMap>);
typedef void (*TestClusterBitmap32AttributeCallback)(void *, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap32MaskMap>);
typedef void (*TestClusterBitmap64AttributeCallback)(void *, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap64MaskMap>);
typedef void (*TestClusterListInt8uListAttributeCallback)(void * context,
                                                          const chip::app::DataModel::DecodableList<uint8_t> & data);
typedef void (*TestClusterListOctetStringListAttributeCallback)(void * context,
                                                                const chip::app::DataModel::DecodableList<chip::ByteSpan> & data);
typedef void (*TestClusterListStructOctetStringListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::TestCluster::Structs::TestListStructOctet::DecodableType> &
        data);
typedef void (*TestClusterListNullablesAndOptionalsStructListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<
        chip::app::Clusters::TestCluster::Structs::NullablesAndOptionalsStruct::DecodableType> & data);
typedef void (*TestClusterStructAttrStructAttributeCallback)(
    void *, const chip::app::Clusters::TestCluster::Structs::SimpleStruct::DecodableType &);
typedef void (*TestClusterListLongOctetStringListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & data);
typedef void (*TestClusterListFabricScopedListAttributeCallback)(
    void * context,
    const chip::app::DataModel::DecodableList<chip::app::Clusters::TestCluster::Structs::TestFabricScoped::DecodableType> & data);
typedef void (*TestClusterNullableBitmap8AttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap8MaskMap>> &);
typedef void (*TestClusterNullableBitmap16AttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap16MaskMap>> &);
typedef void (*TestClusterNullableBitmap32AttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap32MaskMap>> &);
typedef void (*TestClusterNullableBitmap64AttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap64MaskMap>> &);
typedef void (*TestClusterNullableStructStructAttributeCallback)(
    void *, const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::Structs::SimpleStruct::DecodableType> &);
typedef void (*TestClusterGeneratedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TestClusterAcceptedCommandListListAttributeCallback)(
    void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & data);
typedef void (*TestClusterAttributeListListAttributeCallback)(void * context,
                                                              const chip::app::DataModel::DecodableList<chip::AttributeId> & data);

class MTRDefaultSuccessCallbackBridge : public MTRCallbackBridge<DefaultSuccessCallback>
{
public:
    MTRDefaultSuccessCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                    bool keepAlive = false) :
        MTRCallbackBridge<DefaultSuccessCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context);
};

class MTRCommandSuccessCallbackBridge : public MTRCallbackBridge<CommandSuccessCallback>
{
public:
    MTRCommandSuccessCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                    bool keepAlive = false) :
        MTRCallbackBridge<CommandSuccessCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::NullObjectType &);
};

class MTROctetStringAttributeCallbackBridge : public MTRCallbackBridge<OctetStringAttributeCallback>
{
public:
    MTROctetStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                          bool keepAlive = false) :
        MTRCallbackBridge<OctetStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::ByteSpan value);
};

class MTROctetStringAttributeCallbackSubscriptionBridge : public MTROctetStringAttributeCallbackBridge
{
public:
    MTROctetStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTROctetStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOctetStringAttributeCallbackBridge : public MTRCallbackBridge<NullableOctetStringAttributeCallback>
{
public:
    MTRNullableOctetStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  bool keepAlive = false) :
        MTRCallbackBridge<NullableOctetStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::ByteSpan> & value);
};

class MTRNullableOctetStringAttributeCallbackSubscriptionBridge : public MTRNullableOctetStringAttributeCallbackBridge
{
public:
    MTRNullableOctetStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOctetStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRCharStringAttributeCallbackBridge : public MTRCallbackBridge<CharStringAttributeCallback>
{
public:
    MTRCharStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                         bool keepAlive = false) :
        MTRCallbackBridge<CharStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::CharSpan value);
};

class MTRCharStringAttributeCallbackSubscriptionBridge : public MTRCharStringAttributeCallbackBridge
{
public:
    MTRCharStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRCharStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableCharStringAttributeCallbackBridge : public MTRCallbackBridge<NullableCharStringAttributeCallback>
{
public:
    MTRNullableCharStringAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 bool keepAlive = false) :
        MTRCallbackBridge<NullableCharStringAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::CharSpan> & value);
};

class MTRNullableCharStringAttributeCallbackSubscriptionBridge : public MTRNullableCharStringAttributeCallbackBridge
{
public:
    MTRNullableCharStringAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableCharStringAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBooleanAttributeCallbackBridge : public MTRCallbackBridge<BooleanAttributeCallback>
{
public:
    MTRBooleanAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                      bool keepAlive = false) :
        MTRCallbackBridge<BooleanAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, bool value);
};

class MTRBooleanAttributeCallbackSubscriptionBridge : public MTRBooleanAttributeCallbackBridge
{
public:
    MTRBooleanAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRBooleanAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableBooleanAttributeCallbackBridge : public MTRCallbackBridge<NullableBooleanAttributeCallback>
{
public:
    MTRNullableBooleanAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                              bool keepAlive = false) :
        MTRCallbackBridge<NullableBooleanAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<bool> & value);
};

class MTRNullableBooleanAttributeCallbackSubscriptionBridge : public MTRNullableBooleanAttributeCallbackBridge
{
public:
    MTRNullableBooleanAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableBooleanAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt8uAttributeCallbackBridge : public MTRCallbackBridge<Int8uAttributeCallback>
{
public:
    MTRInt8uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                    bool keepAlive = false) :
        MTRCallbackBridge<Int8uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint8_t value);
};

class MTRInt8uAttributeCallbackSubscriptionBridge : public MTRInt8uAttributeCallbackBridge
{
public:
    MTRInt8uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRInt8uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt8uAttributeCallbackBridge : public MTRCallbackBridge<NullableInt8uAttributeCallback>
{
public:
    MTRNullableInt8uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                            bool keepAlive = false) :
        MTRCallbackBridge<NullableInt8uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint8_t> & value);
};

class MTRNullableInt8uAttributeCallbackSubscriptionBridge : public MTRNullableInt8uAttributeCallbackBridge
{
public:
    MTRNullableInt8uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt8uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt8sAttributeCallbackBridge : public MTRCallbackBridge<Int8sAttributeCallback>
{
public:
    MTRInt8sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                    bool keepAlive = false) :
        MTRCallbackBridge<Int8sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int8_t value);
};

class MTRInt8sAttributeCallbackSubscriptionBridge : public MTRInt8sAttributeCallbackBridge
{
public:
    MTRInt8sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRInt8sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt8sAttributeCallbackBridge : public MTRCallbackBridge<NullableInt8sAttributeCallback>
{
public:
    MTRNullableInt8sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                            bool keepAlive = false) :
        MTRCallbackBridge<NullableInt8sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int8_t> & value);
};

class MTRNullableInt8sAttributeCallbackSubscriptionBridge : public MTRNullableInt8sAttributeCallbackBridge
{
public:
    MTRNullableInt8sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt8sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt16uAttributeCallbackBridge : public MTRCallbackBridge<Int16uAttributeCallback>
{
public:
    MTRInt16uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int16uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint16_t value);
};

class MTRInt16uAttributeCallbackSubscriptionBridge : public MTRInt16uAttributeCallbackBridge
{
public:
    MTRInt16uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt16uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt16uAttributeCallbackBridge : public MTRCallbackBridge<NullableInt16uAttributeCallback>
{
public:
    MTRNullableInt16uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt16uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint16_t> & value);
};

class MTRNullableInt16uAttributeCallbackSubscriptionBridge : public MTRNullableInt16uAttributeCallbackBridge
{
public:
    MTRNullableInt16uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt16uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt16sAttributeCallbackBridge : public MTRCallbackBridge<Int16sAttributeCallback>
{
public:
    MTRInt16sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int16sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int16_t value);
};

class MTRInt16sAttributeCallbackSubscriptionBridge : public MTRInt16sAttributeCallbackBridge
{
public:
    MTRInt16sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt16sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt16sAttributeCallbackBridge : public MTRCallbackBridge<NullableInt16sAttributeCallback>
{
public:
    MTRNullableInt16sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt16sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int16_t> & value);
};

class MTRNullableInt16sAttributeCallbackSubscriptionBridge : public MTRNullableInt16sAttributeCallbackBridge
{
public:
    MTRNullableInt16sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt16sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt32uAttributeCallbackBridge : public MTRCallbackBridge<Int32uAttributeCallback>
{
public:
    MTRInt32uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int32uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint32_t value);
};

class MTRInt32uAttributeCallbackSubscriptionBridge : public MTRInt32uAttributeCallbackBridge
{
public:
    MTRInt32uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt32uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt32uAttributeCallbackBridge : public MTRCallbackBridge<NullableInt32uAttributeCallback>
{
public:
    MTRNullableInt32uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt32uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint32_t> & value);
};

class MTRNullableInt32uAttributeCallbackSubscriptionBridge : public MTRNullableInt32uAttributeCallbackBridge
{
public:
    MTRNullableInt32uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt32uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt32sAttributeCallbackBridge : public MTRCallbackBridge<Int32sAttributeCallback>
{
public:
    MTRInt32sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int32sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int32_t value);
};

class MTRInt32sAttributeCallbackSubscriptionBridge : public MTRInt32sAttributeCallbackBridge
{
public:
    MTRInt32sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt32sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt32sAttributeCallbackBridge : public MTRCallbackBridge<NullableInt32sAttributeCallback>
{
public:
    MTRNullableInt32sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt32sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int32_t> & value);
};

class MTRNullableInt32sAttributeCallbackSubscriptionBridge : public MTRNullableInt32sAttributeCallbackBridge
{
public:
    MTRNullableInt32sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt32sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt64uAttributeCallbackBridge : public MTRCallbackBridge<Int64uAttributeCallback>
{
public:
    MTRInt64uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int64uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, uint64_t value);
};

class MTRInt64uAttributeCallbackSubscriptionBridge : public MTRInt64uAttributeCallbackBridge
{
public:
    MTRInt64uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt64uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt64uAttributeCallbackBridge : public MTRCallbackBridge<NullableInt64uAttributeCallback>
{
public:
    MTRNullableInt64uAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt64uAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<uint64_t> & value);
};

class MTRNullableInt64uAttributeCallbackSubscriptionBridge : public MTRNullableInt64uAttributeCallbackBridge
{
public:
    MTRNullableInt64uAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt64uAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRInt64sAttributeCallbackBridge : public MTRCallbackBridge<Int64sAttributeCallback>
{
public:
    MTRInt64sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<Int64sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, int64_t value);
};

class MTRInt64sAttributeCallbackSubscriptionBridge : public MTRInt64sAttributeCallbackBridge
{
public:
    MTRInt64sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRInt64sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableInt64sAttributeCallbackBridge : public MTRCallbackBridge<NullableInt64sAttributeCallback>
{
public:
    MTRNullableInt64sAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableInt64sAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<int64_t> & value);
};

class MTRNullableInt64sAttributeCallbackSubscriptionBridge : public MTRNullableInt64sAttributeCallbackBridge
{
public:
    MTRNullableInt64sAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableInt64sAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFloatAttributeCallbackBridge : public MTRCallbackBridge<FloatAttributeCallback>
{
public:
    MTRFloatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                    bool keepAlive = false) :
        MTRCallbackBridge<FloatAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, float value);
};

class MTRFloatAttributeCallbackSubscriptionBridge : public MTRFloatAttributeCallbackBridge
{
public:
    MTRFloatAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRFloatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableFloatAttributeCallbackBridge : public MTRCallbackBridge<NullableFloatAttributeCallback>
{
public:
    MTRNullableFloatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                            bool keepAlive = false) :
        MTRCallbackBridge<NullableFloatAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<float> & value);
};

class MTRNullableFloatAttributeCallbackSubscriptionBridge : public MTRNullableFloatAttributeCallbackBridge
{
public:
    MTRNullableFloatAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableFloatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoubleAttributeCallbackBridge : public MTRCallbackBridge<DoubleAttributeCallback>
{
public:
    MTRDoubleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                     bool keepAlive = false) :
        MTRCallbackBridge<DoubleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, double value);
};

class MTRDoubleAttributeCallbackSubscriptionBridge : public MTRDoubleAttributeCallbackBridge
{
public:
    MTRDoubleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRDoubleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoubleAttributeCallbackBridge : public MTRCallbackBridge<NullableDoubleAttributeCallback>
{
public:
    MTRNullableDoubleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableDoubleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<double> & value);
};

class MTRNullableDoubleAttributeCallbackSubscriptionBridge : public MTRNullableDoubleAttributeCallbackBridge
{
public:
    MTRNullableDoubleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoubleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRVendorIdAttributeCallbackBridge : public MTRCallbackBridge<VendorIdAttributeCallback>
{
public:
    MTRVendorIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                       bool keepAlive = false) :
        MTRCallbackBridge<VendorIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::VendorId value);
};

class MTRVendorIdAttributeCallbackSubscriptionBridge : public MTRVendorIdAttributeCallbackBridge
{
public:
    MTRVendorIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRVendorIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableVendorIdAttributeCallbackBridge : public MTRCallbackBridge<NullableVendorIdAttributeCallback>
{
public:
    MTRNullableVendorIdAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                               bool keepAlive = false) :
        MTRCallbackBridge<NullableVendorIdAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::VendorId> & value);
};

class MTRNullableVendorIdAttributeCallbackSubscriptionBridge : public MTRNullableVendorIdAttributeCallbackBridge
{
public:
    MTRNullableVendorIdAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableVendorIdAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIdentifyGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<IdentifyGeneratedCommandListListAttributeCallback>
{
public:
    MTRIdentifyGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IdentifyGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRIdentifyGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRIdentifyGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRIdentifyGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIdentifyAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<IdentifyAcceptedCommandListListAttributeCallback>
{
public:
    MTRIdentifyAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IdentifyAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRIdentifyAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRIdentifyAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRIdentifyAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIdentifyAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<IdentifyAttributeListListAttributeCallback>
{
public:
    MTRIdentifyAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<IdentifyAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRIdentifyAttributeListListAttributeCallbackSubscriptionBridge : public MTRIdentifyAttributeListListAttributeCallbackBridge
{
public:
    MTRIdentifyAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupsGeneratedCommandListListAttributeCallback>
{
public:
    MTRGroupsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<GroupsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGroupsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGroupsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRGroupsGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupsAcceptedCommandListListAttributeCallback>
{
public:
    MTRGroupsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<GroupsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGroupsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGroupsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRGroupsAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupsAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<GroupsAttributeListListAttributeCallback>
{
public:
    MTRGroupsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<GroupsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRGroupsAttributeListListAttributeCallbackSubscriptionBridge : public MTRGroupsAttributeListListAttributeCallbackBridge
{
public:
    MTRGroupsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRScenesGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ScenesGeneratedCommandListListAttributeCallback>
{
public:
    MTRScenesGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<ScenesGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRScenesGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRScenesGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRScenesGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRScenesGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRScenesAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ScenesAcceptedCommandListListAttributeCallback>
{
public:
    MTRScenesAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<ScenesAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRScenesAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRScenesAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRScenesAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRScenesAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRScenesAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<ScenesAttributeListListAttributeCallback>
{
public:
    MTRScenesAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<ScenesAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRScenesAttributeListListAttributeCallbackSubscriptionBridge : public MTRScenesAttributeListListAttributeCallbackBridge
{
public:
    MTRScenesAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRScenesAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffGeneratedCommandListListAttributeCallback>
{
public:
    MTROnOffGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<OnOffGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROnOffGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROnOffGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROnOffGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffAcceptedCommandListListAttributeCallback>
{
public:
    MTROnOffAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<OnOffAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROnOffAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROnOffAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROnOffAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<OnOffAttributeListListAttributeCallback>
{
public:
    MTROnOffAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     bool keepAlive = false) :
        MTRCallbackBridge<OnOffAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROnOffAttributeListListAttributeCallbackSubscriptionBridge : public MTROnOffAttributeListListAttributeCallbackBridge
{
public:
    MTROnOffAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action,
                                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffSwitchConfigurationGeneratedCommandListListAttributeCallback>
{
public:
    MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffSwitchConfigurationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffSwitchConfigurationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffSwitchConfigurationAcceptedCommandListListAttributeCallback>
{
public:
    MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffSwitchConfigurationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffSwitchConfigurationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffSwitchConfigurationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffSwitchConfigurationAttributeListListAttributeCallback>
{
public:
    MTROnOffSwitchConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffSwitchConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROnOffSwitchConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTROnOffSwitchConfigurationAttributeListListAttributeCallbackBridge
{
public:
    MTROnOffSwitchConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffSwitchConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLevelControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LevelControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRLevelControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LevelControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLevelControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLevelControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRLevelControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRLevelControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLevelControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LevelControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRLevelControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LevelControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLevelControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLevelControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRLevelControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRLevelControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLevelControlAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<LevelControlAttributeListListAttributeCallback>
{
public:
    MTRLevelControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<LevelControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRLevelControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRLevelControlAttributeListListAttributeCallbackBridge
{
public:
    MTRLevelControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRLevelControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BinaryInputBasicGeneratedCommandListListAttributeCallback>
{
public:
    MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BinaryInputBasicGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBinaryInputBasicGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BinaryInputBasicAcceptedCommandListListAttributeCallback>
{
public:
    MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BinaryInputBasicAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBinaryInputBasicAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBinaryInputBasicAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BinaryInputBasicAttributeListListAttributeCallback>
{
public:
    MTRBinaryInputBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BinaryInputBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBinaryInputBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBinaryInputBasicAttributeListListAttributeCallbackBridge
{
public:
    MTRBinaryInputBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRBinaryInputBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorDeviceListListAttributeCallbackBridge : public MTRCallbackBridge<DescriptorDeviceListListAttributeCallback>
{
public:
    MTRDescriptorDeviceListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<DescriptorDeviceListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::DeviceType::DecodableType> & value);
};

class MTRDescriptorDeviceListListAttributeCallbackSubscriptionBridge : public MTRDescriptorDeviceListListAttributeCallbackBridge
{
public:
    MTRDescriptorDeviceListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorDeviceListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorServerListListAttributeCallbackBridge : public MTRCallbackBridge<DescriptorServerListListAttributeCallback>
{
public:
    MTRDescriptorServerListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<DescriptorServerListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ClusterId> & value);
};

class MTRDescriptorServerListListAttributeCallbackSubscriptionBridge : public MTRDescriptorServerListListAttributeCallbackBridge
{
public:
    MTRDescriptorServerListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorServerListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorClientListListAttributeCallbackBridge : public MTRCallbackBridge<DescriptorClientListListAttributeCallback>
{
public:
    MTRDescriptorClientListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<DescriptorClientListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ClusterId> & value);
};

class MTRDescriptorClientListListAttributeCallbackSubscriptionBridge : public MTRDescriptorClientListListAttributeCallbackBridge
{
public:
    MTRDescriptorClientListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorClientListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorPartsListListAttributeCallbackBridge : public MTRCallbackBridge<DescriptorPartsListListAttributeCallback>
{
public:
    MTRDescriptorPartsListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<DescriptorPartsListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::EndpointId> & value);
};

class MTRDescriptorPartsListListAttributeCallbackSubscriptionBridge : public MTRDescriptorPartsListListAttributeCallbackBridge
{
public:
    MTRDescriptorPartsListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorPartsListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DescriptorGeneratedCommandListListAttributeCallback>
{
public:
    MTRDescriptorGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DescriptorGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDescriptorGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDescriptorGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRDescriptorGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DescriptorAcceptedCommandListListAttributeCallback>
{
public:
    MTRDescriptorAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DescriptorAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDescriptorAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDescriptorAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRDescriptorAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDescriptorAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<DescriptorAttributeListListAttributeCallback>
{
public:
    MTRDescriptorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<DescriptorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRDescriptorAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRDescriptorAttributeListListAttributeCallbackBridge
{
public:
    MTRDescriptorAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRDescriptorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBindingBindingListAttributeCallbackBridge : public MTRCallbackBridge<BindingBindingListAttributeCallback>
{
public:
    MTRBindingBindingListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 bool keepAlive = false) :
        MTRCallbackBridge<BindingBindingListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType> & value);
};

class MTRBindingBindingListAttributeCallbackSubscriptionBridge : public MTRBindingBindingListAttributeCallbackBridge
{
public:
    MTRBindingBindingListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRBindingBindingListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBindingGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BindingGeneratedCommandListListAttributeCallback>
{
public:
    MTRBindingGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BindingGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBindingGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBindingGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBindingGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRBindingGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBindingAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BindingAcceptedCommandListListAttributeCallback>
{
public:
    MTRBindingAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<BindingAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBindingAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBindingAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBindingAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRBindingAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBindingAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<BindingAttributeListListAttributeCallback>
{
public:
    MTRBindingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<BindingAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBindingAttributeListListAttributeCallbackSubscriptionBridge : public MTRBindingAttributeListListAttributeCallbackBridge
{
public:
    MTRBindingAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRBindingAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlAclListAttributeCallbackBridge : public MTRCallbackBridge<AccessControlAclListAttributeCallback>
{
public:
    MTRAccessControlAclListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                   bool keepAlive = false) :
        MTRCallbackBridge<AccessControlAclListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::AccessControlEntry::DecodableType> &
            value);
};

class MTRAccessControlAclListAttributeCallbackSubscriptionBridge : public MTRAccessControlAclListAttributeCallbackBridge
{
public:
    MTRAccessControlAclListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action,
                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlAclListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlExtensionListAttributeCallbackBridge : public MTRCallbackBridge<AccessControlExtensionListAttributeCallback>
{
public:
    MTRAccessControlExtensionListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<AccessControlExtensionListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AccessControl::Structs::ExtensionEntry::DecodableType> &
            value);
};

class MTRAccessControlExtensionListAttributeCallbackSubscriptionBridge : public MTRAccessControlExtensionListAttributeCallbackBridge
{
public:
    MTRAccessControlExtensionListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlExtensionListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRAccessControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AccessControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAccessControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAccessControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRAccessControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRAccessControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AccessControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAccessControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAccessControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRAccessControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlAttributeListListAttributeCallback>
{
public:
    MTRAccessControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<AccessControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRAccessControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRAccessControlAttributeListListAttributeCallbackBridge
{
public:
    MTRAccessControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsActionListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsActionListListAttributeCallback>
{
public:
    MTRBridgedActionsActionListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsActionListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::ActionStruct::DecodableType> &
            value);
};

class MTRBridgedActionsActionListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsActionListListAttributeCallbackBridge
{
public:
    MTRBridgedActionsActionListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsActionListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsEndpointListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsEndpointListListAttributeCallback>
{
public:
    MTRBridgedActionsEndpointListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsEndpointListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::BridgedActions::Structs::EndpointListStruct::DecodableType> &
            value);
};

class MTRBridgedActionsEndpointListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsEndpointListListAttributeCallbackBridge
{
public:
    MTRBridgedActionsEndpointListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsEndpointListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsGeneratedCommandListListAttributeCallback>
{
public:
    MTRBridgedActionsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBridgedActionsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBridgedActionsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsAcceptedCommandListListAttributeCallback>
{
public:
    MTRBridgedActionsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBridgedActionsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBridgedActionsAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsAttributeListListAttributeCallback>
{
public:
    MTRBridgedActionsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBridgedActionsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsAttributeListListAttributeCallbackBridge
{
public:
    MTRBridgedActionsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBasicCapabilityMinimaStructAttributeCallbackBridge : public MTRCallbackBridge<BasicCapabilityMinimaStructAttributeCallback>
{
public:
    MTRBasicCapabilityMinimaStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<BasicCapabilityMinimaStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Basic::Structs::CapabilityMinimaStruct::DecodableType & value);
};

class MTRBasicCapabilityMinimaStructAttributeCallbackSubscriptionBridge
    : public MTRBasicCapabilityMinimaStructAttributeCallbackBridge
{
public:
    MTRBasicCapabilityMinimaStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRBasicCapabilityMinimaStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBasicGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BasicGeneratedCommandListListAttributeCallback>
{
public:
    MTRBasicGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<BasicGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBasicGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRBasicGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBasicAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BasicAcceptedCommandListListAttributeCallback>
{
public:
    MTRBasicAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<BasicAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBasicAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRBasicAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBasicAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<BasicAttributeListListAttributeCallback>
{
public:
    MTRBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     bool keepAlive = false) :
        MTRCallbackBridge<BasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBasicAttributeListListAttributeCallbackSubscriptionBridge : public MTRBasicAttributeListListAttributeCallbackBridge
{
public:
    MTRBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action,
                                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderAttributeListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType> & value);
};

class MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorDefaultOtaProvidersListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorAttributeListListAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackBridge
    : public MTRCallbackBridge<LocalizationConfigurationSupportedLocalesListAttributeCallback>
{
public:
    MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LocalizationConfigurationSupportedLocalesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CharSpan> & value);
};

class MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackSubscriptionBridge
    : public MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackBridge
{
public:
    MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRLocalizationConfigurationSupportedLocalesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LocalizationConfigurationGeneratedCommandListListAttributeCallback>
{
public:
    MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LocalizationConfigurationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRLocalizationConfigurationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LocalizationConfigurationAcceptedCommandListListAttributeCallback>
{
public:
    MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LocalizationConfigurationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRLocalizationConfigurationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLocalizationConfigurationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<LocalizationConfigurationAttributeListListAttributeCallback>
{
public:
    MTRLocalizationConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LocalizationConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRLocalizationConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRLocalizationConfigurationAttributeListListAttributeCallbackBridge
{
public:
    MTRLocalizationConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRLocalizationConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationSupportedCalendarTypesListAttributeCallback>
{
public:
    MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationSupportedCalendarTypesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::DecodableList<chip::app::Clusters::TimeFormatLocalization::CalendarType> & value);
};

class MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationSupportedCalendarTypesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationGeneratedCommandListListAttributeCallback>
{
public:
    MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationAcceptedCommandListListAttributeCallback>
{
public:
    MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationAttributeListListAttributeCallback>
{
public:
    MTRTimeFormatLocalizationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRTimeFormatLocalizationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationAttributeListListAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUnitLocalizationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<UnitLocalizationGeneratedCommandListListAttributeCallback>
{
public:
    MTRUnitLocalizationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UnitLocalizationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRUnitLocalizationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRUnitLocalizationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRUnitLocalizationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRUnitLocalizationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUnitLocalizationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<UnitLocalizationAcceptedCommandListListAttributeCallback>
{
public:
    MTRUnitLocalizationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UnitLocalizationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRUnitLocalizationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRUnitLocalizationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRUnitLocalizationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRUnitLocalizationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUnitLocalizationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<UnitLocalizationAttributeListListAttributeCallback>
{
public:
    MTRUnitLocalizationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UnitLocalizationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRUnitLocalizationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRUnitLocalizationAttributeListListAttributeCallbackBridge
{
public:
    MTRUnitLocalizationAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRUnitLocalizationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceConfigurationSourcesListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceConfigurationSourcesListAttributeCallback>
{
public:
    MTRPowerSourceConfigurationSourcesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceConfigurationSourcesListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class MTRPowerSourceConfigurationSourcesListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceConfigurationSourcesListAttributeCallbackBridge
{
public:
    MTRPowerSourceConfigurationSourcesListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceConfigurationSourcesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceConfigurationGeneratedCommandListListAttributeCallback>
{
public:
    MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceConfigurationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceConfigurationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceConfigurationAcceptedCommandListListAttributeCallback>
{
public:
    MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceConfigurationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceConfigurationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceConfigurationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceConfigurationAttributeListListAttributeCallback>
{
public:
    MTRPowerSourceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRPowerSourceConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceConfigurationAttributeListListAttributeCallbackBridge
{
public:
    MTRPowerSourceConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceActiveWiredFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceActiveWiredFaultsListAttributeCallback>
{
public:
    MTRPowerSourceActiveWiredFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceActiveWiredFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFault> & value);
};

class MTRPowerSourceActiveWiredFaultsListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceActiveWiredFaultsListAttributeCallbackBridge
{
public:
    MTRPowerSourceActiveWiredFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceActiveWiredFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceActiveBatFaultsListAttributeCallback>
{
public:
    MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceActiveBatFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFault> & value);
};

class MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge
{
public:
    MTRPowerSourceActiveBatFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceActiveBatFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceActiveBatChargeFaultsListAttributeCallback>
{
public:
    MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceActiveBatChargeFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFault> & value);
};

class MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge
{
public:
    MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceActiveBatChargeFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceGeneratedCommandListListAttributeCallback>
{
public:
    MTRPowerSourceGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPowerSourceGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRPowerSourceGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceAcceptedCommandListListAttributeCallback>
{
public:
    MTRPowerSourceAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPowerSourceAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRPowerSourceAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceAttributeListListAttributeCallback>
{
public:
    MTRPowerSourceAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRPowerSourceAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceAttributeListListAttributeCallbackBridge
{
public:
    MTRPowerSourceAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningBasicCommissioningInfoStructAttributeCallback>
{
public:
    MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningBasicCommissioningInfoStructAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType & value);
};

class MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningBasicCommissioningInfoStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningGeneratedCommandListListAttributeCallback>
{
public:
    MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningAcceptedCommandListListAttributeCallback>
{
public:
    MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningAttributeListListAttributeCallback>
{
public:
    MTRGeneralCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRGeneralCommissioningAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningAttributeListListAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningNetworksListAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningNetworksListAttributeCallback>
{
public:
    MTRNetworkCommissioningNetworksListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningNetworksListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfo::DecodableType> &
            value);
};

class MTRNetworkCommissioningNetworksListAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningNetworksListAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningNetworksListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningNetworksListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningGeneratedCommandListListAttributeCallback>
{
public:
    MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningAcceptedCommandListListAttributeCallback>
{
public:
    MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningAttributeListListAttributeCallback>
{
public:
    MTRNetworkCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRNetworkCommissioningAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningAttributeListListAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsGeneratedCommandListListAttributeCallback>
{
public:
    MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsAcceptedCommandListListAttributeCallback>
{
public:
    MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsAttributeListListAttributeCallback>
{
public:
    MTRDiagnosticLogsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRDiagnosticLogsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsAttributeListListAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsNetworkInterfacesListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsNetworkInterfacesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterfaceType::DecodableType> & value);
};

class MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsNetworkInterfacesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsActiveHardwareFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsActiveHardwareFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsActiveRadioFaultsListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsActiveRadioFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsActiveRadioFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsActiveNetworkFaultsListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsActiveNetworkFaultsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsGeneratedCommandListListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsAcceptedCommandListListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsAttributeListListAttributeCallback>
{
public:
    MTRGeneralDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRGeneralDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge
    : public MTRCallbackBridge<SoftwareDiagnosticsThreadMetricsListAttributeCallback>
{
public:
    MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<SoftwareDiagnosticsThreadMetricsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetrics::DecodableType> &
            value);
};

class MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackSubscriptionBridge
    : public MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge
{
public:
    MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRSoftwareDiagnosticsThreadMetricsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<SoftwareDiagnosticsGeneratedCommandListListAttributeCallback>
{
public:
    MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<SoftwareDiagnosticsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRSoftwareDiagnosticsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<SoftwareDiagnosticsAcceptedCommandListListAttributeCallback>
{
public:
    MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<SoftwareDiagnosticsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRSoftwareDiagnosticsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSoftwareDiagnosticsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<SoftwareDiagnosticsAttributeListListAttributeCallback>
{
public:
    MTRSoftwareDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<SoftwareDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRSoftwareDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRSoftwareDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    MTRSoftwareDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRSoftwareDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsNeighborTableListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsNeighborTableListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTable::DecodableType> & value);
};

class MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsNeighborTableListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsRouteTableListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsRouteTableListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTable::DecodableType> & value);
};

class MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsRouteTableListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<
                                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType> & value);
};

class MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsSecurityPolicyStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         MTRActionBlock action,
                                                                                         bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<
                    chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType> & value);
};

class MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsOperationalDatasetComponentsStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> & value);
};

class MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsActiveNetworkFaultsListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<EthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallback>
{
public:
    MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<EthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTREthernetNetworkDiagnosticsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<EthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallback>
{
public:
    MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<EthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTREthernetNetworkDiagnosticsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<EthernetNetworkDiagnosticsAttributeListListAttributeCallback>
{
public:
    MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<EthernetNetworkDiagnosticsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge
{
public:
    MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTREthernetNetworkDiagnosticsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedDeviceBasicGeneratedCommandListListAttributeCallback>
{
public:
    MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedDeviceBasicGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedDeviceBasicGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedDeviceBasicAcceptedCommandListListAttributeCallback>
{
public:
    MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedDeviceBasicAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedDeviceBasicAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedDeviceBasicAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedDeviceBasicAttributeListListAttributeCallback>
{
public:
    MTRBridgedDeviceBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedDeviceBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBridgedDeviceBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBridgedDeviceBasicAttributeListListAttributeCallbackBridge
{
public:
    MTRBridgedDeviceBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedDeviceBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSwitchGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<SwitchGeneratedCommandListListAttributeCallback>
{
public:
    MTRSwitchGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<SwitchGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRSwitchGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRSwitchGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRSwitchGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRSwitchGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSwitchAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<SwitchAcceptedCommandListListAttributeCallback>
{
public:
    MTRSwitchAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<SwitchAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRSwitchAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRSwitchAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRSwitchAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRSwitchAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRSwitchAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<SwitchAttributeListListAttributeCallback>
{
public:
    MTRSwitchAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<SwitchAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRSwitchAttributeListListAttributeCallbackSubscriptionBridge : public MTRSwitchAttributeListListAttributeCallbackBridge
{
public:
    MTRSwitchAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRSwitchAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AdministratorCommissioningGeneratedCommandListListAttributeCallback>
{
public:
    MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AdministratorCommissioningGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRAdministratorCommissioningGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AdministratorCommissioningAcceptedCommandListListAttributeCallback>
{
public:
    MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AdministratorCommissioningAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRAdministratorCommissioningAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAdministratorCommissioningAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<AdministratorCommissioningAttributeListListAttributeCallback>
{
public:
    MTRAdministratorCommissioningAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AdministratorCommissioningAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRAdministratorCommissioningAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRAdministratorCommissioningAttributeListListAttributeCallbackBridge
{
public:
    MTRAdministratorCommissioningAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRAdministratorCommissioningAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsNOCsListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsNOCsListAttributeCallback>
{
public:
    MTROperationalCredentialsNOCsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsNOCsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType> &
            value);
};

class MTROperationalCredentialsNOCsListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsNOCsListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsNOCsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsNOCsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsFabricsListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsFabricsListAttributeCallback>
{
public:
    MTROperationalCredentialsFabricsListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsFabricsListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptor::DecodableType> & value);
};

class MTROperationalCredentialsFabricsListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsFabricsListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsFabricsListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsFabricsListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsTrustedRootCertificatesListAttributeCallback>
{
public:
    MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsTrustedRootCertificatesListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsTrustedRootCertificatesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsGeneratedCommandListListAttributeCallback>
{
public:
    MTROperationalCredentialsGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROperationalCredentialsGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsAcceptedCommandListListAttributeCallback>
{
public:
    MTROperationalCredentialsAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROperationalCredentialsAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsAttributeListListAttributeCallback>
{
public:
    MTROperationalCredentialsAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROperationalCredentialsAttributeListListAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsAttributeListListAttributeCallbackBridge
{
public:
    MTROperationalCredentialsAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementGroupKeyMapListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementGroupKeyMapListAttributeCallback>
{
public:
    MTRGroupKeyManagementGroupKeyMapListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementGroupKeyMapListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType> & value);
};

class MTRGroupKeyManagementGroupKeyMapListAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementGroupKeyMapListAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementGroupKeyMapListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementGroupKeyMapListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementGroupTableListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementGroupTableListAttributeCallback>
{
public:
    MTRGroupKeyManagementGroupTableListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementGroupTableListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType> & value);
};

class MTRGroupKeyManagementGroupTableListAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementGroupTableListAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementGroupTableListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementGroupTableListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementGeneratedCommandListListAttributeCallback>
{
public:
    MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementAcceptedCommandListListAttributeCallback>
{
public:
    MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementAttributeListListAttributeCallback>
{
public:
    MTRGroupKeyManagementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRGroupKeyManagementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementAttributeListListAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFixedLabelLabelListListAttributeCallbackBridge : public MTRCallbackBridge<FixedLabelLabelListListAttributeCallback>
{
public:
    MTRFixedLabelLabelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<FixedLabelLabelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::FixedLabel::Structs::LabelStruct::DecodableType> & value);
};

class MTRFixedLabelLabelListListAttributeCallbackSubscriptionBridge : public MTRFixedLabelLabelListListAttributeCallbackBridge
{
public:
    MTRFixedLabelLabelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRFixedLabelLabelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFixedLabelGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FixedLabelGeneratedCommandListListAttributeCallback>
{
public:
    MTRFixedLabelGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FixedLabelGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFixedLabelGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFixedLabelGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRFixedLabelGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRFixedLabelGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFixedLabelAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FixedLabelAcceptedCommandListListAttributeCallback>
{
public:
    MTRFixedLabelAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FixedLabelAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFixedLabelAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFixedLabelAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRFixedLabelAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRFixedLabelAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFixedLabelAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<FixedLabelAttributeListListAttributeCallback>
{
public:
    MTRFixedLabelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<FixedLabelAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRFixedLabelAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRFixedLabelAttributeListListAttributeCallbackBridge
{
public:
    MTRFixedLabelAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRFixedLabelAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUserLabelLabelListListAttributeCallbackBridge : public MTRCallbackBridge<UserLabelLabelListListAttributeCallback>
{
public:
    MTRUserLabelLabelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     bool keepAlive = false) :
        MTRCallbackBridge<UserLabelLabelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::UserLabel::Structs::LabelStruct::DecodableType> & value);
};

class MTRUserLabelLabelListListAttributeCallbackSubscriptionBridge : public MTRUserLabelLabelListListAttributeCallbackBridge
{
public:
    MTRUserLabelLabelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action,
                                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRUserLabelLabelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUserLabelGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<UserLabelGeneratedCommandListListAttributeCallback>
{
public:
    MTRUserLabelGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UserLabelGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRUserLabelGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRUserLabelGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRUserLabelGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRUserLabelGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUserLabelAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<UserLabelAcceptedCommandListListAttributeCallback>
{
public:
    MTRUserLabelAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UserLabelAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRUserLabelAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRUserLabelAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRUserLabelAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRUserLabelAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUserLabelAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<UserLabelAttributeListListAttributeCallback>
{
public:
    MTRUserLabelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<UserLabelAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRUserLabelAttributeListListAttributeCallbackSubscriptionBridge : public MTRUserLabelAttributeListListAttributeCallbackBridge
{
public:
    MTRUserLabelAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRUserLabelAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBooleanStateGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BooleanStateGeneratedCommandListListAttributeCallback>
{
public:
    MTRBooleanStateGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BooleanStateGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBooleanStateGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBooleanStateGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBooleanStateGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRBooleanStateGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBooleanStateAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BooleanStateAcceptedCommandListListAttributeCallback>
{
public:
    MTRBooleanStateAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BooleanStateAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBooleanStateAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBooleanStateAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBooleanStateAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRBooleanStateAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBooleanStateAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BooleanStateAttributeListListAttributeCallback>
{
public:
    MTRBooleanStateAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<BooleanStateAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBooleanStateAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBooleanStateAttributeListListAttributeCallbackBridge
{
public:
    MTRBooleanStateAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRBooleanStateAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRModeSelectSupportedModesListAttributeCallbackBridge
    : public MTRCallbackBridge<ModeSelectSupportedModesListAttributeCallback>
{
public:
    MTRModeSelectSupportedModesListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<ModeSelectSupportedModesListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType> &
            value);
};

class MTRModeSelectSupportedModesListAttributeCallbackSubscriptionBridge
    : public MTRModeSelectSupportedModesListAttributeCallbackBridge
{
public:
    MTRModeSelectSupportedModesListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRModeSelectSupportedModesListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRModeSelectGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ModeSelectGeneratedCommandListListAttributeCallback>
{
public:
    MTRModeSelectGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ModeSelectGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRModeSelectGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRModeSelectGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRModeSelectGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRModeSelectGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRModeSelectAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ModeSelectAcceptedCommandListListAttributeCallback>
{
public:
    MTRModeSelectAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ModeSelectAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRModeSelectAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRModeSelectAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRModeSelectAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRModeSelectAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRModeSelectAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<ModeSelectAttributeListListAttributeCallback>
{
public:
    MTRModeSelectAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<ModeSelectAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRModeSelectAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRModeSelectAttributeListListAttributeCallbackBridge
{
public:
    MTRModeSelectAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRModeSelectAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockCredentialRulesSupportAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockCredentialRulesSupportAttributeCallback>
{
public:
    MTRDoorLockCredentialRulesSupportAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<DoorLockCredentialRulesSupportAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::DoorLock::DlCredentialRuleMask> value);
};

class MTRDoorLockCredentialRulesSupportAttributeCallbackSubscriptionBridge
    : public MTRDoorLockCredentialRulesSupportAttributeCallbackBridge
{
public:
    MTRDoorLockCredentialRulesSupportAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockCredentialRulesSupportAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockSupportedOperatingModesAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockSupportedOperatingModesAttributeCallback>
{
public:
    MTRDoorLockSupportedOperatingModesAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockSupportedOperatingModesAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::DoorLock::DlSupportedOperatingModes> value);
};

class MTRDoorLockSupportedOperatingModesAttributeCallbackSubscriptionBridge
    : public MTRDoorLockSupportedOperatingModesAttributeCallbackBridge
{
public:
    MTRDoorLockSupportedOperatingModesAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockSupportedOperatingModesAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockDefaultConfigurationRegisterAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockDefaultConfigurationRegisterAttributeCallback>
{
public:
    MTRDoorLockDefaultConfigurationRegisterAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockDefaultConfigurationRegisterAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::DoorLock::DlDefaultConfigurationRegister> value);
};

class MTRDoorLockDefaultConfigurationRegisterAttributeCallbackSubscriptionBridge
    : public MTRDoorLockDefaultConfigurationRegisterAttributeCallbackBridge
{
public:
    MTRDoorLockDefaultConfigurationRegisterAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockDefaultConfigurationRegisterAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockLocalProgrammingFeaturesAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockLocalProgrammingFeaturesAttributeCallback>
{
public:
    MTRDoorLockLocalProgrammingFeaturesAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockLocalProgrammingFeaturesAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::DoorLock::DlLocalProgrammingFeatures> value);
};

class MTRDoorLockLocalProgrammingFeaturesAttributeCallbackSubscriptionBridge
    : public MTRDoorLockLocalProgrammingFeaturesAttributeCallbackBridge
{
public:
    MTRDoorLockLocalProgrammingFeaturesAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockLocalProgrammingFeaturesAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockGeneratedCommandListListAttributeCallback>
{
public:
    MTRDoorLockGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDoorLockGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDoorLockGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRDoorLockGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockAcceptedCommandListListAttributeCallback>
{
public:
    MTRDoorLockAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRDoorLockAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRDoorLockAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRDoorLockAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<DoorLockAttributeListListAttributeCallback>
{
public:
    MTRDoorLockAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<DoorLockAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRDoorLockAttributeListListAttributeCallbackSubscriptionBridge : public MTRDoorLockAttributeListListAttributeCallbackBridge
{
public:
    MTRDoorLockAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringConfigStatusAttributeCallbackBridge : public MTRCallbackBridge<WindowCoveringConfigStatusAttributeCallback>
{
public:
    MTRWindowCoveringConfigStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringConfigStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::WindowCovering::ConfigStatus> value);
};

class MTRWindowCoveringConfigStatusAttributeCallbackSubscriptionBridge : public MTRWindowCoveringConfigStatusAttributeCallbackBridge
{
public:
    MTRWindowCoveringConfigStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringConfigStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringOperationalStatusAttributeCallbackBridge
    : public MTRCallbackBridge<WindowCoveringOperationalStatusAttributeCallback>
{
public:
    MTRWindowCoveringOperationalStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringOperationalStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::WindowCovering::OperationalStatus> value);
};

class MTRWindowCoveringOperationalStatusAttributeCallbackSubscriptionBridge
    : public MTRWindowCoveringOperationalStatusAttributeCallbackBridge
{
public:
    MTRWindowCoveringOperationalStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringOperationalStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringModeAttributeCallbackBridge : public MTRCallbackBridge<WindowCoveringModeAttributeCallback>
{
public:
    MTRWindowCoveringModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::WindowCovering::Mode> value);
};

class MTRWindowCoveringModeAttributeCallbackSubscriptionBridge : public MTRWindowCoveringModeAttributeCallbackBridge
{
public:
    MTRWindowCoveringModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringSafetyStatusAttributeCallbackBridge : public MTRCallbackBridge<WindowCoveringSafetyStatusAttributeCallback>
{
public:
    MTRWindowCoveringSafetyStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringSafetyStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::WindowCovering::SafetyStatus> value);
};

class MTRWindowCoveringSafetyStatusAttributeCallbackSubscriptionBridge : public MTRWindowCoveringSafetyStatusAttributeCallbackBridge
{
public:
    MTRWindowCoveringSafetyStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringSafetyStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WindowCoveringGeneratedCommandListListAttributeCallback>
{
public:
    MTRWindowCoveringGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWindowCoveringGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWindowCoveringGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRWindowCoveringGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WindowCoveringAcceptedCommandListListAttributeCallback>
{
public:
    MTRWindowCoveringAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWindowCoveringAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWindowCoveringAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRWindowCoveringAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<WindowCoveringAttributeListListAttributeCallback>
{
public:
    MTRWindowCoveringAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRWindowCoveringAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRWindowCoveringAttributeListListAttributeCallbackBridge
{
public:
    MTRWindowCoveringAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBarrierControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BarrierControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRBarrierControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BarrierControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBarrierControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBarrierControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBarrierControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBarrierControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBarrierControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BarrierControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRBarrierControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BarrierControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBarrierControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBarrierControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBarrierControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRBarrierControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBarrierControlAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BarrierControlAttributeListListAttributeCallback>
{
public:
    MTRBarrierControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BarrierControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBarrierControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBarrierControlAttributeListListAttributeCallbackBridge
{
public:
    MTRBarrierControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRBarrierControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlPumpStatusAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlPumpStatusAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlPumpStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlPumpStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::PumpConfigurationAndControl::PumpStatus> value);
};

class MTRPumpConfigurationAndControlPumpStatusAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlPumpStatusAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlPumpStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlPumpStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlAttributeListListAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRPumpConfigurationAndControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlAttributeListListAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatGeneratedCommandListListAttributeCallback>
{
public:
    MTRThermostatGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThermostatGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRThermostatGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatAcceptedCommandListListAttributeCallback>
{
public:
    MTRThermostatAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThermostatAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRThermostatAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<ThermostatAttributeListListAttributeCallback>
{
public:
    MTRThermostatAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<ThermostatAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRThermostatAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatAttributeListListAttributeCallbackBridge
{
public:
    MTRThermostatAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFanControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FanControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRFanControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FanControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFanControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFanControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRFanControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRFanControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFanControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FanControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRFanControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FanControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFanControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFanControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRFanControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRFanControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFanControlAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<FanControlAttributeListListAttributeCallback>
{
public:
    MTRFanControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<FanControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRFanControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRFanControlAttributeListListAttributeCallbackBridge
{
public:
    MTRFanControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRFanControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallback>
{
public:
    MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           MTRActionBlock action,
                                                                                           bool keepAlive = false) :
        MTRCallbackBridge<ThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatUserInterfaceConfigurationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallback>
{
public:
    MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                          ResponseHandler handler,
                                                                                          MTRActionBlock action,
                                                                                          bool keepAlive = false) :
        MTRCallbackBridge<ThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallback>(queue, handler, action,
                                                                                                        OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatUserInterfaceConfigurationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback>
{
public:
    MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatUserInterfaceConfigurationAttributeListListAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge
{
public:
    MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatUserInterfaceConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlGeneratedCommandListListAttributeCallback>
{
public:
    MTRColorControlGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRColorControlGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRColorControlGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRColorControlGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlAcceptedCommandListListAttributeCallback>
{
public:
    MTRColorControlAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRColorControlAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRColorControlAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRColorControlAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlAttributeListListAttributeCallback>
{
public:
    MTRColorControlAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<ColorControlAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRColorControlAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRColorControlAttributeListListAttributeCallbackBridge
{
public:
    MTRColorControlAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBallastConfigurationGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BallastConfigurationGeneratedCommandListListAttributeCallback>
{
public:
    MTRBallastConfigurationGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BallastConfigurationGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBallastConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBallastConfigurationGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRBallastConfigurationGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBallastConfigurationGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBallastConfigurationAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<BallastConfigurationAcceptedCommandListListAttributeCallback>
{
public:
    MTRBallastConfigurationAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BallastConfigurationAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRBallastConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRBallastConfigurationAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRBallastConfigurationAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBallastConfigurationAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBallastConfigurationAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<BallastConfigurationAttributeListListAttributeCallback>
{
public:
    MTRBallastConfigurationAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BallastConfigurationAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRBallastConfigurationAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRBallastConfigurationAttributeListListAttributeCallbackBridge
{
public:
    MTRBallastConfigurationAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRBallastConfigurationAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<IlluminanceMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IlluminanceMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRIlluminanceMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<IlluminanceMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IlluminanceMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRIlluminanceMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIlluminanceMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<IlluminanceMeasurementAttributeListListAttributeCallback>
{
public:
    MTRIlluminanceMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IlluminanceMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRIlluminanceMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRIlluminanceMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRIlluminanceMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRIlluminanceMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TemperatureMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TemperatureMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTemperatureMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TemperatureMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TemperatureMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTemperatureMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTemperatureMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<TemperatureMeasurementAttributeListListAttributeCallback>
{
public:
    MTRTemperatureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TemperatureMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRTemperatureMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRTemperatureMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRTemperatureMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTemperatureMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPressureMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PressureMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRPressureMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PressureMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPressureMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPressureMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRPressureMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPressureMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPressureMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<PressureMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRPressureMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PressureMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRPressureMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRPressureMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRPressureMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPressureMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPressureMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<PressureMeasurementAttributeListListAttributeCallback>
{
public:
    MTRPressureMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PressureMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRPressureMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRPressureMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRPressureMeasurementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRPressureMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFlowMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FlowMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRFlowMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FlowMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFlowMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFlowMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRFlowMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRFlowMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFlowMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<FlowMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRFlowMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FlowMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRFlowMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRFlowMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRFlowMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRFlowMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFlowMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<FlowMeasurementAttributeListListAttributeCallback>
{
public:
    MTRFlowMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FlowMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRFlowMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRFlowMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRFlowMeasurementAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRFlowMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<RelativeHumidityMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<RelativeHumidityMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRRelativeHumidityMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<RelativeHumidityMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<RelativeHumidityMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRRelativeHumidityMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<RelativeHumidityMeasurementAttributeListListAttributeCallback>
{
public:
    MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<RelativeHumidityMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRRelativeHumidityMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROccupancySensingGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OccupancySensingGeneratedCommandListListAttributeCallback>
{
public:
    MTROccupancySensingGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OccupancySensingGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROccupancySensingGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROccupancySensingGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTROccupancySensingGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROccupancySensingGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROccupancySensingAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<OccupancySensingAcceptedCommandListListAttributeCallback>
{
public:
    MTROccupancySensingAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OccupancySensingAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTROccupancySensingAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTROccupancySensingAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTROccupancySensingAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROccupancySensingAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROccupancySensingAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<OccupancySensingAttributeListListAttributeCallback>
{
public:
    MTROccupancySensingAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OccupancySensingAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTROccupancySensingAttributeListListAttributeCallbackSubscriptionBridge
    : public MTROccupancySensingAttributeListListAttributeCallbackBridge
{
public:
    MTROccupancySensingAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTROccupancySensingAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWakeOnLanGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WakeOnLanGeneratedCommandListListAttributeCallback>
{
public:
    MTRWakeOnLanGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WakeOnLanGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWakeOnLanGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWakeOnLanGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRWakeOnLanGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRWakeOnLanGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWakeOnLanAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<WakeOnLanAcceptedCommandListListAttributeCallback>
{
public:
    MTRWakeOnLanAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WakeOnLanAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRWakeOnLanAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRWakeOnLanAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRWakeOnLanAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRWakeOnLanAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWakeOnLanAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<WakeOnLanAttributeListListAttributeCallback>
{
public:
    MTRWakeOnLanAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<WakeOnLanAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRWakeOnLanAttributeListListAttributeCallbackSubscriptionBridge : public MTRWakeOnLanAttributeListListAttributeCallbackBridge
{
public:
    MTRWakeOnLanAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRWakeOnLanAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelChannelListListAttributeCallbackBridge : public MTRCallbackBridge<ChannelChannelListListAttributeCallback>
{
public:
    MTRChannelChannelListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     bool keepAlive = false) :
        MTRCallbackBridge<ChannelChannelListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::Channel::Structs::ChannelInfo::DecodableType> & value);
};

class MTRChannelChannelListListAttributeCallbackSubscriptionBridge : public MTRChannelChannelListListAttributeCallbackBridge
{
public:
    MTRChannelChannelListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action,
                                                                 SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelChannelListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelLineupStructAttributeCallbackBridge : public MTRCallbackBridge<ChannelLineupStructAttributeCallback>
{
public:
    MTRChannelLineupStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  bool keepAlive = false) :
        MTRCallbackBridge<ChannelLineupStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfo::DecodableType> & value);
};

class MTRChannelLineupStructAttributeCallbackSubscriptionBridge : public MTRChannelLineupStructAttributeCallbackBridge
{
public:
    MTRChannelLineupStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelLineupStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelCurrentChannelStructAttributeCallbackBridge : public MTRCallbackBridge<ChannelCurrentChannelStructAttributeCallback>
{
public:
    MTRChannelCurrentChannelStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<ChannelCurrentChannelStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfo::DecodableType> & value);
};

class MTRChannelCurrentChannelStructAttributeCallbackSubscriptionBridge
    : public MTRChannelCurrentChannelStructAttributeCallbackBridge
{
public:
    MTRChannelCurrentChannelStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelCurrentChannelStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ChannelGeneratedCommandListListAttributeCallback>
{
public:
    MTRChannelGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ChannelGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRChannelGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRChannelGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRChannelGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ChannelAcceptedCommandListListAttributeCallback>
{
public:
    MTRChannelAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<ChannelAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRChannelAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRChannelAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRChannelAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<ChannelAttributeListListAttributeCallback>
{
public:
    MTRChannelAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<ChannelAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRChannelAttributeListListAttributeCallbackSubscriptionBridge : public MTRChannelAttributeListListAttributeCallbackBridge
{
public:
    MTRChannelAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTargetNavigatorTargetListListAttributeCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorTargetListListAttributeCallback>
{
public:
    MTRTargetNavigatorTargetListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorTargetListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::TargetNavigator::Structs::TargetInfo::DecodableType> &
            value);
};

class MTRTargetNavigatorTargetListListAttributeCallbackSubscriptionBridge
    : public MTRTargetNavigatorTargetListListAttributeCallbackBridge
{
public:
    MTRTargetNavigatorTargetListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRTargetNavigatorTargetListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTargetNavigatorGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorGeneratedCommandListListAttributeCallback>
{
public:
    MTRTargetNavigatorGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTargetNavigatorGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTargetNavigatorGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRTargetNavigatorGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTargetNavigatorGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTargetNavigatorAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorAcceptedCommandListListAttributeCallback>
{
public:
    MTRTargetNavigatorAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTargetNavigatorAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTargetNavigatorAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRTargetNavigatorAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTargetNavigatorAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTargetNavigatorAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorAttributeListListAttributeCallback>
{
public:
    MTRTargetNavigatorAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRTargetNavigatorAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRTargetNavigatorAttributeListListAttributeCallbackBridge
{
public:
    MTRTargetNavigatorAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRTargetNavigatorAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackSampledPositionStructAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackSampledPositionStructAttributeCallback>
{
public:
    MTRMediaPlaybackSampledPositionStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackSampledPositionStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPosition::DecodableType> & value);
};

class MTRMediaPlaybackSampledPositionStructAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackSampledPositionStructAttributeCallbackBridge
{
public:
    MTRMediaPlaybackSampledPositionStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackSampledPositionStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackGeneratedCommandListListAttributeCallback>
{
public:
    MTRMediaPlaybackGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRMediaPlaybackGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRMediaPlaybackGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackAcceptedCommandListListAttributeCallback>
{
public:
    MTRMediaPlaybackAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRMediaPlaybackAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRMediaPlaybackAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackAttributeListListAttributeCallback>
{
public:
    MTRMediaPlaybackAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRMediaPlaybackAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackAttributeListListAttributeCallbackBridge
{
public:
    MTRMediaPlaybackAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaInputInputListListAttributeCallbackBridge : public MTRCallbackBridge<MediaInputInputListListAttributeCallback>
{
public:
    MTRMediaInputInputListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<MediaInputInputListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::MediaInput::Structs::InputInfo::DecodableType> & value);
};

class MTRMediaInputInputListListAttributeCallbackSubscriptionBridge : public MTRMediaInputInputListListAttributeCallbackBridge
{
public:
    MTRMediaInputInputListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaInputInputListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaInputGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<MediaInputGeneratedCommandListListAttributeCallback>
{
public:
    MTRMediaInputGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaInputGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRMediaInputGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRMediaInputGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRMediaInputGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaInputGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaInputAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<MediaInputAcceptedCommandListListAttributeCallback>
{
public:
    MTRMediaInputAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaInputAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRMediaInputAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRMediaInputAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRMediaInputAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaInputAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaInputAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<MediaInputAttributeListListAttributeCallback>
{
public:
    MTRMediaInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<MediaInputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRMediaInputAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRMediaInputAttributeListListAttributeCallbackBridge
{
public:
    MTRMediaInputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaInputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLowPowerGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LowPowerGeneratedCommandListListAttributeCallback>
{
public:
    MTRLowPowerGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LowPowerGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLowPowerGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLowPowerGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRLowPowerGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRLowPowerGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLowPowerAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<LowPowerAcceptedCommandListListAttributeCallback>
{
public:
    MTRLowPowerAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<LowPowerAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRLowPowerAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRLowPowerAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRLowPowerAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRLowPowerAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLowPowerAttributeListListAttributeCallbackBridge : public MTRCallbackBridge<LowPowerAttributeListListAttributeCallback>
{
public:
    MTRLowPowerAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<LowPowerAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRLowPowerAttributeListListAttributeCallbackSubscriptionBridge : public MTRLowPowerAttributeListListAttributeCallbackBridge
{
public:
    MTRLowPowerAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRLowPowerAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRKeypadInputGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<KeypadInputGeneratedCommandListListAttributeCallback>
{
public:
    MTRKeypadInputGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRKeypadInputGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRKeypadInputGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRKeypadInputGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRKeypadInputGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRKeypadInputAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<KeypadInputAcceptedCommandListListAttributeCallback>
{
public:
    MTRKeypadInputAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRKeypadInputAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRKeypadInputAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRKeypadInputAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRKeypadInputAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRKeypadInputAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<KeypadInputAttributeListListAttributeCallback>
{
public:
    MTRKeypadInputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRKeypadInputAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRKeypadInputAttributeListListAttributeCallbackBridge
{
public:
    MTRKeypadInputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRKeypadInputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherAcceptHeaderListAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherAcceptHeaderListAttributeCallback>
{
public:
    MTRContentLauncherAcceptHeaderListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherAcceptHeaderListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CharSpan> & value);
};

class MTRContentLauncherAcceptHeaderListAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherAcceptHeaderListAttributeCallbackBridge
{
public:
    MTRContentLauncherAcceptHeaderListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherAcceptHeaderListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherGeneratedCommandListListAttributeCallback>
{
public:
    MTRContentLauncherGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRContentLauncherGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRContentLauncherGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherAcceptedCommandListListAttributeCallback>
{
public:
    MTRContentLauncherAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRContentLauncherAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRContentLauncherAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherAttributeListListAttributeCallback>
{
public:
    MTRContentLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRContentLauncherAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherAttributeListListAttributeCallbackBridge
{
public:
    MTRContentLauncherAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAudioOutputOutputListListAttributeCallbackBridge : public MTRCallbackBridge<AudioOutputOutputListListAttributeCallback>
{
public:
    MTRAudioOutputOutputListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<AudioOutputOutputListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::AudioOutput::Structs::OutputInfo::DecodableType> & value);
};

class MTRAudioOutputOutputListListAttributeCallbackSubscriptionBridge : public MTRAudioOutputOutputListListAttributeCallbackBridge
{
public:
    MTRAudioOutputOutputListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRAudioOutputOutputListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAudioOutputGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AudioOutputGeneratedCommandListListAttributeCallback>
{
public:
    MTRAudioOutputGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AudioOutputGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAudioOutputGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAudioOutputGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRAudioOutputGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRAudioOutputGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAudioOutputAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AudioOutputAcceptedCommandListListAttributeCallback>
{
public:
    MTRAudioOutputAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AudioOutputAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAudioOutputAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAudioOutputAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRAudioOutputAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRAudioOutputAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAudioOutputAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<AudioOutputAttributeListListAttributeCallback>
{
public:
    MTRAudioOutputAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<AudioOutputAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRAudioOutputAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRAudioOutputAttributeListListAttributeCallbackBridge
{
public:
    MTRAudioOutputAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRAudioOutputAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherCatalogListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherCatalogListListAttributeCallback>
{
public:
    MTRApplicationLauncherCatalogListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherCatalogListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint16_t> & value);
};

class MTRApplicationLauncherCatalogListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherCatalogListListAttributeCallbackBridge
{
public:
    MTRApplicationLauncherCatalogListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherCatalogListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherCurrentAppStructAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherCurrentAppStructAttributeCallback>
{
public:
    MTRApplicationLauncherCurrentAppStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherCurrentAppStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEP::DecodableType> &
            value);
};

class MTRApplicationLauncherCurrentAppStructAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherCurrentAppStructAttributeCallbackBridge
{
public:
    MTRApplicationLauncherCurrentAppStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherCurrentAppStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherGeneratedCommandListListAttributeCallback>
{
public:
    MTRApplicationLauncherGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRApplicationLauncherGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRApplicationLauncherGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherAcceptedCommandListListAttributeCallback>
{
public:
    MTRApplicationLauncherAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRApplicationLauncherAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRApplicationLauncherAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherAttributeListListAttributeCallback>
{
public:
    MTRApplicationLauncherAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRApplicationLauncherAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherAttributeListListAttributeCallbackBridge
{
public:
    MTRApplicationLauncherAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicApplicationStructAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicApplicationStructAttributeCallback>
{
public:
    MTRApplicationBasicApplicationStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicApplicationStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::ApplicationBasic::Structs::ApplicationBasicApplication::DecodableType & value);
};

class MTRApplicationBasicApplicationStructAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicApplicationStructAttributeCallbackBridge
{
public:
    MTRApplicationBasicApplicationStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicApplicationStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicAllowedVendorListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicAllowedVendorListListAttributeCallback>
{
public:
    MTRApplicationBasicAllowedVendorListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicAllowedVendorListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::VendorId> & value);
};

class MTRApplicationBasicAllowedVendorListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicAllowedVendorListListAttributeCallbackBridge
{
public:
    MTRApplicationBasicAllowedVendorListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicAllowedVendorListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicGeneratedCommandListListAttributeCallback>
{
public:
    MTRApplicationBasicGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRApplicationBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRApplicationBasicGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicAcceptedCommandListListAttributeCallback>
{
public:
    MTRApplicationBasicAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRApplicationBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRApplicationBasicAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicAttributeListListAttributeCallback>
{
public:
    MTRApplicationBasicAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRApplicationBasicAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicAttributeListListAttributeCallbackBridge
{
public:
    MTRApplicationBasicAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccountLoginGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccountLoginGeneratedCommandListListAttributeCallback>
{
public:
    MTRAccountLoginGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AccountLoginGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAccountLoginGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAccountLoginGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRAccountLoginGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRAccountLoginGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccountLoginAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccountLoginAcceptedCommandListListAttributeCallback>
{
public:
    MTRAccountLoginAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AccountLoginAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRAccountLoginAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRAccountLoginAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRAccountLoginAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRAccountLoginAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccountLoginAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<AccountLoginAttributeListListAttributeCallback>
{
public:
    MTRAccountLoginAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<AccountLoginAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRAccountLoginAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRAccountLoginAttributeListListAttributeCallbackBridge
{
public:
    MTRAccountLoginAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRAccountLoginAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ElectricalMeasurementGeneratedCommandListListAttributeCallback>
{
public:
    MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ElectricalMeasurementGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRElectricalMeasurementGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<ElectricalMeasurementAcceptedCommandListListAttributeCallback>
{
public:
    MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ElectricalMeasurementAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRElectricalMeasurementAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRElectricalMeasurementAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<ElectricalMeasurementAttributeListListAttributeCallback>
{
public:
    MTRElectricalMeasurementAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ElectricalMeasurementAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRElectricalMeasurementAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRElectricalMeasurementAttributeListListAttributeCallbackBridge
{
public:
    MTRElectricalMeasurementAttributeListListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRElectricalMeasurementAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterBitmap8AttributeCallbackBridge : public MTRCallbackBridge<TestClusterBitmap8AttributeCallback>
{
public:
    MTRTestClusterBitmap8AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                 bool keepAlive = false) :
        MTRCallbackBridge<TestClusterBitmap8AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap8MaskMap> value);
};

class MTRTestClusterBitmap8AttributeCallbackSubscriptionBridge : public MTRTestClusterBitmap8AttributeCallbackBridge
{
public:
    MTRTestClusterBitmap8AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterBitmap8AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterBitmap16AttributeCallbackBridge : public MTRCallbackBridge<TestClusterBitmap16AttributeCallback>
{
public:
    MTRTestClusterBitmap16AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  bool keepAlive = false) :
        MTRCallbackBridge<TestClusterBitmap16AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap16MaskMap> value);
};

class MTRTestClusterBitmap16AttributeCallbackSubscriptionBridge : public MTRTestClusterBitmap16AttributeCallbackBridge
{
public:
    MTRTestClusterBitmap16AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterBitmap16AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterBitmap32AttributeCallbackBridge : public MTRCallbackBridge<TestClusterBitmap32AttributeCallback>
{
public:
    MTRTestClusterBitmap32AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  bool keepAlive = false) :
        MTRCallbackBridge<TestClusterBitmap32AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap32MaskMap> value);
};

class MTRTestClusterBitmap32AttributeCallbackSubscriptionBridge : public MTRTestClusterBitmap32AttributeCallbackBridge
{
public:
    MTRTestClusterBitmap32AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterBitmap32AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterBitmap64AttributeCallbackBridge : public MTRCallbackBridge<TestClusterBitmap64AttributeCallback>
{
public:
    MTRTestClusterBitmap64AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                  bool keepAlive = false) :
        MTRCallbackBridge<TestClusterBitmap64AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::BitMask<chip::app::Clusters::TestCluster::Bitmap64MaskMap> value);
};

class MTRTestClusterBitmap64AttributeCallbackSubscriptionBridge : public MTRTestClusterBitmap64AttributeCallbackBridge
{
public:
    MTRTestClusterBitmap64AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action,
                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterBitmap64AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListInt8uListAttributeCallbackBridge : public MTRCallbackBridge<TestClusterListInt8uListAttributeCallback>
{
public:
    MTRTestClusterListInt8uListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListInt8uListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<uint8_t> & value);
};

class MTRTestClusterListInt8uListAttributeCallbackSubscriptionBridge : public MTRTestClusterListInt8uListAttributeCallbackBridge
{
public:
    MTRTestClusterListInt8uListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action,
                                                                   SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListInt8uListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListOctetStringListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterListOctetStringListAttributeCallback>
{
public:
    MTRTestClusterListOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class MTRTestClusterListOctetStringListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterListOctetStringListAttributeCallbackBridge
{
public:
    MTRTestClusterListOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListStructOctetStringListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterListStructOctetStringListAttributeCallback>
{
public:
    MTRTestClusterListStructOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListStructOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::TestCluster::Structs::TestListStructOctet::DecodableType> &
            value);
};

class MTRTestClusterListStructOctetStringListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterListStructOctetStringListAttributeCallbackBridge
{
public:
    MTRTestClusterListStructOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListStructOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterListNullablesAndOptionalsStructListAttributeCallback>
{
public:
    MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListNullablesAndOptionalsStructListAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::DecodableList<
                                chip::app::Clusters::TestCluster::Structs::NullablesAndOptionalsStruct::DecodableType> & value);
};

class MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge
{
public:
    MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListNullablesAndOptionalsStructListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterStructAttrStructAttributeCallbackBridge : public MTRCallbackBridge<TestClusterStructAttrStructAttributeCallback>
{
public:
    MTRTestClusterStructAttrStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<TestClusterStructAttrStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::TestCluster::Structs::SimpleStruct::DecodableType & value);
};

class MTRTestClusterStructAttrStructAttributeCallbackSubscriptionBridge
    : public MTRTestClusterStructAttrStructAttributeCallbackBridge
{
public:
    MTRTestClusterStructAttrStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterStructAttrStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListLongOctetStringListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterListLongOctetStringListAttributeCallback>
{
public:
    MTRTestClusterListLongOctetStringListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListLongOctetStringListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::ByteSpan> & value);
};

class MTRTestClusterListLongOctetStringListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterListLongOctetStringListAttributeCallbackBridge
{
public:
    MTRTestClusterListLongOctetStringListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListLongOctetStringListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterListFabricScopedListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterListFabricScopedListAttributeCallback>
{
public:
    MTRTestClusterListFabricScopedListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterListFabricScopedListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::DecodableList<chip::app::Clusters::TestCluster::Structs::TestFabricScoped::DecodableType> &
            value);
};

class MTRTestClusterListFabricScopedListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterListFabricScopedListAttributeCallbackBridge
{
public:
    MTRTestClusterListFabricScopedListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterListFabricScopedListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterNullableBitmap8AttributeCallbackBridge : public MTRCallbackBridge<TestClusterNullableBitmap8AttributeCallback>
{
public:
    MTRTestClusterNullableBitmap8AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<TestClusterNullableBitmap8AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap8MaskMap>> & value);
};

class MTRTestClusterNullableBitmap8AttributeCallbackSubscriptionBridge : public MTRTestClusterNullableBitmap8AttributeCallbackBridge
{
public:
    MTRTestClusterNullableBitmap8AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterNullableBitmap8AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterNullableBitmap16AttributeCallbackBridge : public MTRCallbackBridge<TestClusterNullableBitmap16AttributeCallback>
{
public:
    MTRTestClusterNullableBitmap16AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<TestClusterNullableBitmap16AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap16MaskMap>> & value);
};

class MTRTestClusterNullableBitmap16AttributeCallbackSubscriptionBridge
    : public MTRTestClusterNullableBitmap16AttributeCallbackBridge
{
public:
    MTRTestClusterNullableBitmap16AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterNullableBitmap16AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterNullableBitmap32AttributeCallbackBridge : public MTRCallbackBridge<TestClusterNullableBitmap32AttributeCallback>
{
public:
    MTRTestClusterNullableBitmap32AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<TestClusterNullableBitmap32AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap32MaskMap>> & value);
};

class MTRTestClusterNullableBitmap32AttributeCallbackSubscriptionBridge
    : public MTRTestClusterNullableBitmap32AttributeCallbackBridge
{
public:
    MTRTestClusterNullableBitmap32AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterNullableBitmap32AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterNullableBitmap64AttributeCallbackBridge : public MTRCallbackBridge<TestClusterNullableBitmap64AttributeCallback>
{
public:
    MTRTestClusterNullableBitmap64AttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<TestClusterNullableBitmap64AttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::BitMask<chip::app::Clusters::TestCluster::Bitmap64MaskMap>> & value);
};

class MTRTestClusterNullableBitmap64AttributeCallbackSubscriptionBridge
    : public MTRTestClusterNullableBitmap64AttributeCallbackBridge
{
public:
    MTRTestClusterNullableBitmap64AttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterNullableBitmap64AttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterNullableStructStructAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterNullableStructStructAttributeCallback>
{
public:
    MTRTestClusterNullableStructStructAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterNullableStructStructAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::Structs::SimpleStruct::DecodableType> & value);
};

class MTRTestClusterNullableStructStructAttributeCallbackSubscriptionBridge
    : public MTRTestClusterNullableStructStructAttributeCallbackBridge
{
public:
    MTRTestClusterNullableStructStructAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterNullableStructStructAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterGeneratedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterGeneratedCommandListListAttributeCallback>
{
public:
    MTRTestClusterGeneratedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterGeneratedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTestClusterGeneratedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterGeneratedCommandListListAttributeCallbackBridge
{
public:
    MTRTestClusterGeneratedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterGeneratedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterAcceptedCommandListListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterAcceptedCommandListListAttributeCallback>
{
public:
    MTRTestClusterAcceptedCommandListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterAcceptedCommandListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::CommandId> & value);
};

class MTRTestClusterAcceptedCommandListListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterAcceptedCommandListListAttributeCallbackBridge
{
public:
    MTRTestClusterAcceptedCommandListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterAcceptedCommandListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterAttributeListListAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterAttributeListListAttributeCallback>
{
public:
    MTRTestClusterAttributeListListAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<TestClusterAttributeListListAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::DecodableList<chip::AttributeId> & value);
};

class MTRTestClusterAttributeListListAttributeCallbackSubscriptionBridge
    : public MTRTestClusterAttributeListListAttributeCallbackBridge
{
public:
    MTRTestClusterAttributeListListAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterAttributeListListAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupsClusterAddGroupResponseCallbackBridge : public MTRCallbackBridge<GroupsClusterAddGroupResponseCallbackType>
{
public:
    MTRGroupsClusterAddGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                   bool keepAlive = false) :
        MTRCallbackBridge<GroupsClusterAddGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::AddGroupResponse::DecodableType & data);
};

class MTRGroupsClusterViewGroupResponseCallbackBridge : public MTRCallbackBridge<GroupsClusterViewGroupResponseCallbackType>
{
public:
    MTRGroupsClusterViewGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                    bool keepAlive = false) :
        MTRCallbackBridge<GroupsClusterViewGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::ViewGroupResponse::DecodableType & data);
};

class MTRGroupsClusterGetGroupMembershipResponseCallbackBridge
    : public MTRCallbackBridge<GroupsClusterGetGroupMembershipResponseCallbackType>
{
public:
    MTRGroupsClusterGetGroupMembershipResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<GroupsClusterGetGroupMembershipResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Groups::Commands::GetGroupMembershipResponse::DecodableType & data);
};

class MTRGroupsClusterRemoveGroupResponseCallbackBridge : public MTRCallbackBridge<GroupsClusterRemoveGroupResponseCallbackType>
{
public:
    MTRGroupsClusterRemoveGroupResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<GroupsClusterRemoveGroupResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Groups::Commands::RemoveGroupResponse::DecodableType & data);
};

class MTRScenesClusterAddSceneResponseCallbackBridge : public MTRCallbackBridge<ScenesClusterAddSceneResponseCallbackType>
{
public:
    MTRScenesClusterAddSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                   bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterAddSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::AddSceneResponse::DecodableType & data);
};

class MTRScenesClusterViewSceneResponseCallbackBridge : public MTRCallbackBridge<ScenesClusterViewSceneResponseCallbackType>
{
public:
    MTRScenesClusterViewSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                    bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterViewSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::ViewSceneResponse::DecodableType & data);
};

class MTRScenesClusterRemoveSceneResponseCallbackBridge : public MTRCallbackBridge<ScenesClusterRemoveSceneResponseCallbackType>
{
public:
    MTRScenesClusterRemoveSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterRemoveSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::RemoveSceneResponse::DecodableType & data);
};

class MTRScenesClusterRemoveAllScenesResponseCallbackBridge
    : public MTRCallbackBridge<ScenesClusterRemoveAllScenesResponseCallbackType>
{
public:
    MTRScenesClusterRemoveAllScenesResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterRemoveAllScenesResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::RemoveAllScenesResponse::DecodableType & data);
};

class MTRScenesClusterStoreSceneResponseCallbackBridge : public MTRCallbackBridge<ScenesClusterStoreSceneResponseCallbackType>
{
public:
    MTRScenesClusterStoreSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                     bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterStoreSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::StoreSceneResponse::DecodableType & data);
};

class MTRScenesClusterGetSceneMembershipResponseCallbackBridge
    : public MTRCallbackBridge<ScenesClusterGetSceneMembershipResponseCallbackType>
{
public:
    MTRScenesClusterGetSceneMembershipResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterGetSceneMembershipResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::GetSceneMembershipResponse::DecodableType & data);
};

class MTRScenesClusterEnhancedAddSceneResponseCallbackBridge
    : public MTRCallbackBridge<ScenesClusterEnhancedAddSceneResponseCallbackType>
{
public:
    MTRScenesClusterEnhancedAddSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterEnhancedAddSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::EnhancedAddSceneResponse::DecodableType & data);
};

class MTRScenesClusterEnhancedViewSceneResponseCallbackBridge
    : public MTRCallbackBridge<ScenesClusterEnhancedViewSceneResponseCallbackType>
{
public:
    MTRScenesClusterEnhancedViewSceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterEnhancedViewSceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Scenes::Commands::EnhancedViewSceneResponse::DecodableType & data);
};

class MTRScenesClusterCopySceneResponseCallbackBridge : public MTRCallbackBridge<ScenesClusterCopySceneResponseCallbackType>
{
public:
    MTRScenesClusterCopySceneResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                    bool keepAlive = false) :
        MTRCallbackBridge<ScenesClusterCopySceneResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::Scenes::Commands::CopySceneResponse::DecodableType & data);
};

class MTROtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>
{
public:
    MTROtaSoftwareUpdateProviderClusterQueryImageResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderClusterQueryImageResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & data);
};

class MTROtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>
{
public:
    MTROtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderClusterApplyUpdateResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & data);
};

class MTRGeneralCommissioningClusterArmFailSafeResponseCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningClusterArmFailSafeResponseCallbackType>
{
public:
    MTRGeneralCommissioningClusterArmFailSafeResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningClusterArmFailSafeResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & data);
};

class MTRGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>
{
public:
    MTRGeneralCommissioningClusterSetRegulatoryConfigResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningClusterSetRegulatoryConfigResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & data);
};

class MTRGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningClusterCommissioningCompleteResponseCallbackType>
{
public:
    MTRGeneralCommissioningClusterCommissioningCompleteResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningClusterCommissioningCompleteResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & data);
};

class MTRNetworkCommissioningClusterScanNetworksResponseCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningClusterScanNetworksResponseCallbackType>
{
public:
    MTRNetworkCommissioningClusterScanNetworksResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningClusterScanNetworksResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & data);
};

class MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningClusterNetworkConfigResponseCallbackType>
{
public:
    MTRNetworkCommissioningClusterNetworkConfigResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningClusterNetworkConfigResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & data);
};

class MTRNetworkCommissioningClusterConnectNetworkResponseCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningClusterConnectNetworkResponseCallbackType>
{
public:
    MTRNetworkCommissioningClusterConnectNetworkResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningClusterConnectNetworkResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & data);
};

class MTRDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsClusterRetrieveLogsResponseCallbackType>
{
public:
    MTRDiagnosticLogsClusterRetrieveLogsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsClusterRetrieveLogsResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & data);
};

class MTROperationalCredentialsClusterAttestationResponseCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsClusterAttestationResponseCallbackType>
{
public:
    MTROperationalCredentialsClusterAttestationResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsClusterAttestationResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::AttestationResponse::DecodableType & data);
};

class MTROperationalCredentialsClusterCertificateChainResponseCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsClusterCertificateChainResponseCallbackType>
{
public:
    MTROperationalCredentialsClusterCertificateChainResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsClusterCertificateChainResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::OperationalCredentials::Commands::CertificateChainResponse::DecodableType & data);
};

class MTROperationalCredentialsClusterCSRResponseCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsClusterCSRResponseCallbackType>
{
public:
    MTROperationalCredentialsClusterCSRResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsClusterCSRResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::CSRResponse::DecodableType & data);
};

class MTROperationalCredentialsClusterNOCResponseCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsClusterNOCResponseCallbackType>
{
public:
    MTROperationalCredentialsClusterNOCResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsClusterNOCResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::OperationalCredentials::Commands::NOCResponse::DecodableType & data);
};

class MTRGroupKeyManagementClusterKeySetReadResponseCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementClusterKeySetReadResponseCallbackType>
{
public:
    MTRGroupKeyManagementClusterKeySetReadResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementClusterKeySetReadResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & data);
};

class MTRGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>
{
public:
    MTRGroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementClusterKeySetReadAllIndicesResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & data);
};

class MTRDoorLockClusterGetWeekDayScheduleResponseCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterGetWeekDayScheduleResponseCallbackType>
{
public:
    MTRDoorLockClusterGetWeekDayScheduleResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterGetWeekDayScheduleResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & data);
};

class MTRDoorLockClusterGetYearDayScheduleResponseCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterGetYearDayScheduleResponseCallbackType>
{
public:
    MTRDoorLockClusterGetYearDayScheduleResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterGetYearDayScheduleResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & data);
};

class MTRDoorLockClusterGetHolidayScheduleResponseCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterGetHolidayScheduleResponseCallbackType>
{
public:
    MTRDoorLockClusterGetHolidayScheduleResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterGetHolidayScheduleResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & data);
};

class MTRDoorLockClusterGetUserResponseCallbackBridge : public MTRCallbackBridge<DoorLockClusterGetUserResponseCallbackType>
{
public:
    MTRDoorLockClusterGetUserResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                    bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterGetUserResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::Clusters::DoorLock::Commands::GetUserResponse::DecodableType & data);
};

class MTRDoorLockClusterSetCredentialResponseCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterSetCredentialResponseCallbackType>
{
public:
    MTRDoorLockClusterSetCredentialResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterSetCredentialResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType & data);
};

class MTRDoorLockClusterGetCredentialStatusResponseCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterGetCredentialStatusResponseCallbackType>
{
public:
    MTRDoorLockClusterGetCredentialStatusResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterGetCredentialStatusResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType & data);
};

class MTRThermostatClusterGetWeeklyScheduleResponseCallbackBridge
    : public MTRCallbackBridge<ThermostatClusterGetWeeklyScheduleResponseCallbackType>
{
public:
    MTRThermostatClusterGetWeeklyScheduleResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatClusterGetWeeklyScheduleResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & data);
};

class MTRChannelClusterChangeChannelResponseCallbackBridge
    : public MTRCallbackBridge<ChannelClusterChangeChannelResponseCallbackType>
{
public:
    MTRChannelClusterChangeChannelResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<ChannelClusterChangeChannelResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::Channel::Commands::ChangeChannelResponse::DecodableType & data);
};

class MTRTargetNavigatorClusterNavigateTargetResponseCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorClusterNavigateTargetResponseCallbackType>
{
public:
    MTRTargetNavigatorClusterNavigateTargetResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorClusterNavigateTargetResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType & data);
};

class MTRMediaPlaybackClusterPlaybackResponseCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackClusterPlaybackResponseCallbackType>
{
public:
    MTRMediaPlaybackClusterPlaybackResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackClusterPlaybackResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType & data);
};

class MTRKeypadInputClusterSendKeyResponseCallbackBridge : public MTRCallbackBridge<KeypadInputClusterSendKeyResponseCallbackType>
{
public:
    MTRKeypadInputClusterSendKeyResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputClusterSendKeyResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType & data);
};

class MTRContentLauncherClusterLaunchResponseCallbackBridge
    : public MTRCallbackBridge<ContentLauncherClusterLaunchResponseCallbackType>
{
public:
    MTRContentLauncherClusterLaunchResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherClusterLaunchResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::ContentLauncher::Commands::LaunchResponse::DecodableType & data);
};

class MTRApplicationLauncherClusterLauncherResponseCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherClusterLauncherResponseCallbackType>
{
public:
    MTRApplicationLauncherClusterLauncherResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherClusterLauncherResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType & data);
};

class MTRAccountLoginClusterGetSetupPINResponseCallbackBridge
    : public MTRCallbackBridge<AccountLoginClusterGetSetupPINResponseCallbackType>
{
public:
    MTRAccountLoginClusterGetSetupPINResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<AccountLoginClusterGetSetupPINResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::AccountLogin::Commands::GetSetupPINResponse::DecodableType & data);
};

class MTRTestClusterClusterTestSpecificResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestSpecificResponseCallbackType>
{
public:
    MTRTestClusterClusterTestSpecificResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestSpecificResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestSpecificResponse::DecodableType & data);
};

class MTRTestClusterClusterTestAddArgumentsResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestAddArgumentsResponseCallbackType>
{
public:
    MTRTestClusterClusterTestAddArgumentsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestAddArgumentsResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestAddArgumentsResponse::DecodableType & data);
};

class MTRTestClusterClusterTestSimpleArgumentResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestSimpleArgumentResponseCallbackType>
{
public:
    MTRTestClusterClusterTestSimpleArgumentResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestSimpleArgumentResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestSimpleArgumentResponse::DecodableType & data);
};

class MTRTestClusterClusterTestStructArrayArgumentResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestStructArrayArgumentResponseCallbackType>
{
public:
    MTRTestClusterClusterTestStructArrayArgumentResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestStructArrayArgumentResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::TestCluster::Commands::TestStructArrayArgumentResponse::DecodableType & data);
};

class MTRTestClusterClusterTestListInt8UReverseResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestListInt8UReverseResponseCallbackType>
{
public:
    MTRTestClusterClusterTestListInt8UReverseResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestListInt8UReverseResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestListInt8UReverseResponse::DecodableType & data);
};

class MTRTestClusterClusterTestEnumsResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestEnumsResponseCallbackType>
{
public:
    MTRTestClusterClusterTestEnumsResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestEnumsResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestEnumsResponse::DecodableType & data);
};

class MTRTestClusterClusterTestNullableOptionalResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestNullableOptionalResponseCallbackType>
{
public:
    MTRTestClusterClusterTestNullableOptionalResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestNullableOptionalResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestNullableOptionalResponse::DecodableType & data);
};

class MTRTestClusterClusterTestComplexNullableOptionalResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestComplexNullableOptionalResponseCallbackType>
{
public:
    MTRTestClusterClusterTestComplexNullableOptionalResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestComplexNullableOptionalResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::TestCluster::Commands::TestComplexNullableOptionalResponse::DecodableType & data);
};

class MTRTestClusterClusterBooleanResponseCallbackBridge : public MTRCallbackBridge<TestClusterClusterBooleanResponseCallbackType>
{
public:
    MTRTestClusterClusterBooleanResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                       bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterBooleanResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::BooleanResponse::DecodableType & data);
};

class MTRTestClusterClusterSimpleStructResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterSimpleStructResponseCallbackType>
{
public:
    MTRTestClusterClusterSimpleStructResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterSimpleStructResponseCallbackType>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::SimpleStructResponse::DecodableType & data);
};

class MTRTestClusterClusterTestEmitTestEventResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestEmitTestEventResponseCallbackType>
{
public:
    MTRTestClusterClusterTestEmitTestEventResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestEmitTestEventResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::Clusters::TestCluster::Commands::TestEmitTestEventResponse::DecodableType & data);
};

class MTRTestClusterClusterTestEmitTestFabricScopedEventResponseCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterTestEmitTestFabricScopedEventResponseCallbackType>
{
public:
    MTRTestClusterClusterTestEmitTestFabricScopedEventResponseCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterTestEmitTestFabricScopedEventResponseCallbackType>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::Clusters::TestCluster::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & data);
};

class MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
    : public MTRCallbackBridge<IdentifyClusterIdentifyEffectIdentifierAttributeCallback>
{
public:
    MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IdentifyClusterIdentifyEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyEffectIdentifier value);
};

class MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge
    : public MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
{
public:
    MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
    : public MTRCallbackBridge<NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback>
{
public:
    MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableIdentifyClusterIdentifyEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectIdentifier> & value);
};

class MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge
    : public MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge
{
public:
    MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableIdentifyClusterIdentifyEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<IdentifyClusterIdentifyEffectVariantAttributeCallback>
{
public:
    MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IdentifyClusterIdentifyEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyEffectVariant value);
};

class MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge
    : public MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
{
public:
    MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<NullableIdentifyClusterIdentifyEffectVariantAttributeCallback>
{
public:
    MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableIdentifyClusterIdentifyEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyEffectVariant> & value);
};

class MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge
    : public MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge
{
public:
    MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableIdentifyClusterIdentifyEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
    : public MTRCallbackBridge<IdentifyClusterIdentifyIdentifyTypeAttributeCallback>
{
public:
    MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IdentifyClusterIdentifyIdentifyTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Identify::IdentifyIdentifyType value);
};

class MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge
    : public MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
{
public:
    MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback>
{
public:
    MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableIdentifyClusterIdentifyIdentifyTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Identify::IdentifyIdentifyType> & value);
};

class MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge
{
public:
    MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableIdentifyClusterIdentifyIdentifyTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>
{
public:
    MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant value);
};

class MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge
    : public MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
{
public:
    MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>
{
public:
    MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDelayedAllOffEffectVariant> & value);
};

class MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge
    : public MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge
{
public:
    MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOnOffClusterOnOffDelayedAllOffEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffClusterOnOffDyingLightEffectVariantAttributeCallback>
{
public:
    MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffClusterOnOffDyingLightEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant value);
};

class MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge
    : public MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
{
public:
    MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback>
{
public:
    MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                             keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffDyingLightEffectVariant> & value);
};

class MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge
    : public MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge
{
public:
    MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOnOffClusterOnOffDyingLightEffectVariantAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffClusterOnOffEffectIdentifierAttributeCallback>
{
public:
    MTROnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OnOffClusterOnOffEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffEffectIdentifier value);
};

class MTROnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge
    : public MTROnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
{
public:
    MTROnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOnOffClusterOnOffEffectIdentifierAttributeCallback>
{
public:
    MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableOnOffClusterOnOffEffectIdentifierAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffEffectIdentifier> & value);
};

class MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge
    : public MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge
{
public:
    MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOnOffClusterOnOffEffectIdentifierAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROnOffClusterOnOffStartUpOnOffAttributeCallbackBridge
    : public MTRCallbackBridge<OnOffClusterOnOffStartUpOnOffAttributeCallback>
{
public:
    MTROnOffClusterOnOffStartUpOnOffAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<OnOffClusterOnOffStartUpOnOffAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OnOff::OnOffStartUpOnOff value);
};

class MTROnOffClusterOnOffStartUpOnOffAttributeCallbackSubscriptionBridge
    : public MTROnOffClusterOnOffStartUpOnOffAttributeCallbackBridge
{
public:
    MTROnOffClusterOnOffStartUpOnOffAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTROnOffClusterOnOffStartUpOnOffAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOnOffClusterOnOffStartUpOnOffAttributeCallback>
{
public:
    MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableOnOffClusterOnOffStartUpOnOffAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::OnOffStartUpOnOff> & value);
};

class MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackSubscriptionBridge
    : public MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackBridge
{
public:
    MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOnOffClusterOnOffStartUpOnOffAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLevelControlClusterMoveModeAttributeCallbackBridge : public MTRCallbackBridge<LevelControlClusterMoveModeAttributeCallback>
{
public:
    MTRLevelControlClusterMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<LevelControlClusterMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::LevelControl::MoveMode value);
};

class MTRLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge
    : public MTRLevelControlClusterMoveModeAttributeCallbackBridge
{
public:
    MTRLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRLevelControlClusterMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableLevelControlClusterMoveModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableLevelControlClusterMoveModeAttributeCallback>
{
public:
    MTRNullableLevelControlClusterMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableLevelControlClusterMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::MoveMode> & value);
};

class MTRNullableLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge
    : public MTRNullableLevelControlClusterMoveModeAttributeCallbackBridge
{
public:
    MTRNullableLevelControlClusterMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableLevelControlClusterMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRLevelControlClusterStepModeAttributeCallbackBridge : public MTRCallbackBridge<LevelControlClusterStepModeAttributeCallback>
{
public:
    MTRLevelControlClusterStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<LevelControlClusterStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::LevelControl::StepMode value);
};

class MTRLevelControlClusterStepModeAttributeCallbackSubscriptionBridge
    : public MTRLevelControlClusterStepModeAttributeCallbackBridge
{
public:
    MTRLevelControlClusterStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRLevelControlClusterStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableLevelControlClusterStepModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableLevelControlClusterStepModeAttributeCallback>
{
public:
    MTRNullableLevelControlClusterStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableLevelControlClusterStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::LevelControl::StepMode> & value);
};

class MTRNullableLevelControlClusterStepModeAttributeCallbackSubscriptionBridge
    : public MTRNullableLevelControlClusterStepModeAttributeCallbackBridge
{
public:
    MTRNullableLevelControlClusterStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableLevelControlClusterStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlClusterAuthModeAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlClusterAuthModeAttributeCallback>
{
public:
    MTRAccessControlClusterAuthModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<AccessControlClusterAuthModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AccessControl::AuthMode value);
};

class MTRAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge
    : public MTRAccessControlClusterAuthModeAttributeCallbackBridge
{
public:
    MTRAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlClusterAuthModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAccessControlClusterAuthModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAccessControlClusterAuthModeAttributeCallback>
{
public:
    MTRNullableAccessControlClusterAuthModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableAccessControlClusterAuthModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::AuthMode> & value);
};

class MTRNullableAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge
    : public MTRNullableAccessControlClusterAuthModeAttributeCallbackBridge
{
public:
    MTRNullableAccessControlClusterAuthModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAccessControlClusterAuthModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlClusterChangeTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlClusterChangeTypeEnumAttributeCallback>
{
public:
    MTRAccessControlClusterChangeTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AccessControlClusterChangeTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AccessControl::ChangeTypeEnum value);
};

class MTRAccessControlClusterChangeTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRAccessControlClusterChangeTypeEnumAttributeCallbackBridge
{
public:
    MTRAccessControlClusterChangeTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlClusterChangeTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAccessControlClusterChangeTypeEnumAttributeCallback>
{
public:
    MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableAccessControlClusterChangeTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::ChangeTypeEnum> & value);
};

class MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAccessControlClusterChangeTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAccessControlClusterPrivilegeAttributeCallbackBridge
    : public MTRCallbackBridge<AccessControlClusterPrivilegeAttributeCallback>
{
public:
    MTRAccessControlClusterPrivilegeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<AccessControlClusterPrivilegeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AccessControl::Privilege value);
};

class MTRAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge
    : public MTRAccessControlClusterPrivilegeAttributeCallbackBridge
{
public:
    MTRAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRAccessControlClusterPrivilegeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAccessControlClusterPrivilegeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAccessControlClusterPrivilegeAttributeCallback>
{
public:
    MTRNullableAccessControlClusterPrivilegeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableAccessControlClusterPrivilegeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AccessControl::Privilege> & value);
};

class MTRNullableAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge
    : public MTRNullableAccessControlClusterPrivilegeAttributeCallbackBridge
{
public:
    MTRNullableAccessControlClusterPrivilegeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAccessControlClusterPrivilegeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsClusterActionErrorEnumAttributeCallback>
{
public:
    MTRBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsClusterActionErrorEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionErrorEnum value);
};

class MTRBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
{
public:
    MTRBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableBridgedActionsClusterActionErrorEnumAttributeCallback>
{
public:
    MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableBridgedActionsClusterActionErrorEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionErrorEnum> & value);
};

class MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge
{
public:
    MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableBridgedActionsClusterActionErrorEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsClusterActionStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsClusterActionStateEnumAttributeCallback>
{
public:
    MTRBridgedActionsClusterActionStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsClusterActionStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionStateEnum value);
};

class MTRBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsClusterActionStateEnumAttributeCallbackBridge
{
public:
    MTRBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsClusterActionStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableBridgedActionsClusterActionStateEnumAttributeCallback>
{
public:
    MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableBridgedActionsClusterActionStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionStateEnum> & value);
};

class MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge
{
public:
    MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableBridgedActionsClusterActionStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsClusterActionTypeEnumAttributeCallback>
{
public:
    MTRBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsClusterActionTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::ActionTypeEnum value);
};

class MTRBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
{
public:
    MTRBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableBridgedActionsClusterActionTypeEnumAttributeCallback>
{
public:
    MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableBridgedActionsClusterActionTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::ActionTypeEnum> & value);
};

class MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableBridgedActionsClusterActionTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<BridgedActionsClusterEndpointListTypeEnumAttributeCallback>
{
public:
    MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<BridgedActionsClusterEndpointListTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::BridgedActions::EndpointListTypeEnum value);
};

class MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
{
public:
    MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback>
{
public:
    MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableBridgedActionsClusterEndpointListTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::BridgedActions::EndpointListTypeEnum> & value);
};

class MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableBridgedActionsClusterEndpointListTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction value);
};

class MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           MTRActionBlock action,
                                                                                           bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAApplyUpdateAction> & value);
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateProviderClusterOTAApplyUpdateActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol value);
};

class MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                          ResponseHandler handler,
                                                                                          MTRActionBlock action,
                                                                                          bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallback>(queue, handler, action,
                                                                                                        OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTADownloadProtocol> & value);
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateProviderClusterOTADownloadProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>
{
public:
    MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus value);
};

class MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                     ResponseHandler handler, MTRActionBlock action,
                                                                                     bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallback>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateProvider::OTAQueryStatus> & value);
};

class MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateProviderClusterOTAQueryStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                     ResponseHandler handler, MTRActionBlock action,
                                                                                     bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>(queue, handler, action,
                                                                                                   OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason value);
};

class MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                             ResponseHandler handler,
                                                                                             MTRActionBlock action,
                                                                                             bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAAnnouncementReason> & value);
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateRequestorClusterOTAAnnouncementReasonAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAChangeReasonEnum value);
};

class MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           MTRActionBlock action,
                                                                                           bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAChangeReasonEnum> & value);
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateRequestorClusterOTAChangeReasonEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback>
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAUpdateStateEnum value);
};

class MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackSubscriptionBridge
    : public MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge
{
public:
    MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback>
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                          ResponseHandler handler,
                                                                                          MTRActionBlock action,
                                                                                          bool keepAlive = false) :
        MTRCallbackBridge<NullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallback>(queue, handler, action,
                                                                                                        OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OtaSoftwareUpdateRequestor::OTAUpdateStateEnum> & value);
};

class MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge
{
public:
    MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOtaSoftwareUpdateRequestorClusterOTAUpdateStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationClusterCalendarTypeAttributeCallback>
{
public:
    MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationClusterCalendarTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TimeFormatLocalization::CalendarType value);
};

class MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableTimeFormatLocalizationClusterCalendarTypeAttributeCallback>
{
public:
    MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableTimeFormatLocalizationClusterCalendarTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::TimeFormatLocalization::CalendarType> & value);
};

class MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge
{
public:
    MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableTimeFormatLocalizationClusterCalendarTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge
    : public MTRCallbackBridge<TimeFormatLocalizationClusterHourFormatAttributeCallback>
{
public:
    MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TimeFormatLocalizationClusterHourFormatAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TimeFormatLocalization::HourFormat value);
};

class MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackSubscriptionBridge
    : public MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge
{
public:
    MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge
    : public MTRCallbackBridge<NullableTimeFormatLocalizationClusterHourFormatAttributeCallback>
{
public:
    MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableTimeFormatLocalizationClusterHourFormatAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::TimeFormatLocalization::HourFormat> & value);
};

class MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackSubscriptionBridge
    : public MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge
{
public:
    MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableTimeFormatLocalizationClusterHourFormatAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRUnitLocalizationClusterTempUnitAttributeCallbackBridge
    : public MTRCallbackBridge<UnitLocalizationClusterTempUnitAttributeCallback>
{
public:
    MTRUnitLocalizationClusterTempUnitAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<UnitLocalizationClusterTempUnitAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::UnitLocalization::TempUnit value);
};

class MTRUnitLocalizationClusterTempUnitAttributeCallbackSubscriptionBridge
    : public MTRUnitLocalizationClusterTempUnitAttributeCallbackBridge
{
public:
    MTRUnitLocalizationClusterTempUnitAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRUnitLocalizationClusterTempUnitAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackBridge
    : public MTRCallbackBridge<NullableUnitLocalizationClusterTempUnitAttributeCallback>
{
public:
    MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableUnitLocalizationClusterTempUnitAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::UnitLocalization::TempUnit> & value);
};

class MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackSubscriptionBridge
    : public MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackBridge
{
public:
    MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableUnitLocalizationClusterTempUnitAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterBatChargeFaultAttributeCallback>
{
public:
    MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterBatChargeFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatChargeFault value);
};

class MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterBatChargeFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterBatChargeFaultAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeFault> & value);
};

class MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterBatChargeFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterBatChargeLevelAttributeCallback>
{
public:
    MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterBatChargeLevelAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatChargeLevel value);
};

class MTRPowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterBatChargeLevelAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterBatChargeLevelAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterBatChargeLevelAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeLevel> & value);
};

class MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterBatChargeLevelAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterBatChargeStateAttributeCallback>
{
public:
    MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterBatChargeStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatChargeState value);
};

class MTRPowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterBatChargeStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterBatChargeStateAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterBatChargeStateAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatChargeState> & value);
};

class MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterBatChargeStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterBatFaultAttributeCallbackBridge : public MTRCallbackBridge<PowerSourceClusterBatFaultAttributeCallback>
{
public:
    MTRPowerSourceClusterBatFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterBatFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatFault value);
};

class MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge : public MTRPowerSourceClusterBatFaultAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterBatFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterBatFaultAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterBatFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatFault> & value);
};

class MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterBatFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterBatFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterBatReplaceabilityAttributeCallback>
{
public:
    MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterBatReplaceabilityAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::BatReplaceability value);
};

class MTRPowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterBatReplaceabilityAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterBatReplaceabilityAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterBatReplaceabilityAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::BatReplaceability> & value);
};

class MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterBatReplaceabilityAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterPowerSourceStatusAttributeCallback>
{
public:
    MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterPowerSourceStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::PowerSourceStatus value);
};

class MTRPowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterPowerSourceStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterPowerSourceStatusAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterPowerSourceStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::PowerSourceStatus> & value);
};

class MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterPowerSourceStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterWiredCurrentTypeAttributeCallback>
{
public:
    MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterWiredCurrentTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::WiredCurrentType value);
};

class MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterWiredCurrentTypeAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterWiredCurrentTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredCurrentType> & value);
};

class MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterWiredCurrentTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPowerSourceClusterWiredFaultAttributeCallbackBridge
    : public MTRCallbackBridge<PowerSourceClusterWiredFaultAttributeCallback>
{
public:
    MTRPowerSourceClusterWiredFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<PowerSourceClusterWiredFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PowerSource::WiredFault value);
};

class MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge
    : public MTRPowerSourceClusterWiredFaultAttributeCallbackBridge
{
public:
    MTRPowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRPowerSourceClusterWiredFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePowerSourceClusterWiredFaultAttributeCallback>
{
public:
    MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullablePowerSourceClusterWiredFaultAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::PowerSource::WiredFault> & value);
};

class MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge
    : public MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge
{
public:
    MTRNullablePowerSourceClusterWiredFaultAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePowerSourceClusterWiredFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningClusterCommissioningErrorAttributeCallback>
{
public:
    MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningClusterCommissioningErrorAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralCommissioning::CommissioningError value);
};

class MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralCommissioningClusterCommissioningErrorAttributeCallback>
{
public:
    MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralCommissioningClusterCommissioningErrorAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::CommissioningError> & value);
};

class MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge
{
public:
    MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralCommissioningClusterCommissioningErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>
{
public:
    MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType value);
};

class MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
{
public:
    MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>
{
public:
    MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                        ResponseHandler handler,
                                                                                        MTRActionBlock action,
                                                                                        bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallback>(queue, handler, action,
                                                                                                      OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralCommissioning::RegulatoryLocationType> & value);
};

class MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralCommissioningClusterRegulatoryLocationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>
{
public:
    MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus value);
};

class MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>
{
public:
    MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            MTRActionBlock action,
                                                                                            bool keepAlive = false) :
        MTRCallbackBridge<NullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatus> & value);
};

class MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge
{
public:
    MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableNetworkCommissioningClusterNetworkCommissioningStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
    : public MTRCallbackBridge<NetworkCommissioningClusterWiFiBandAttributeCallback>
{
public:
    MTRNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NetworkCommissioningClusterWiFiBandAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::NetworkCommissioning::WiFiBand value);
};

class MTRNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge
    : public MTRNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
{
public:
    MTRNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
    : public MTRCallbackBridge<NullableNetworkCommissioningClusterWiFiBandAttributeCallback>
{
public:
    MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableNetworkCommissioningClusterWiFiBandAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::WiFiBand> & value);
};

class MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge
    : public MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge
{
public:
    MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableNetworkCommissioningClusterWiFiBandAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsClusterLogsIntentAttributeCallback>
{
public:
    MTRDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsClusterLogsIntentAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsIntent value);
};

class MTRDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDiagnosticLogsClusterLogsIntentAttributeCallback>
{
public:
    MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDiagnosticLogsClusterLogsIntentAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsIntent> & value);
};

class MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge
    : public MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge
{
public:
    MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDiagnosticLogsClusterLogsIntentAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsClusterLogsStatusAttributeCallback>
{
public:
    MTRDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsClusterLogsStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsStatus value);
};

class MTRDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDiagnosticLogsClusterLogsStatusAttributeCallback>
{
public:
    MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDiagnosticLogsClusterLogsStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsStatus> & value);
};

class MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge
{
public:
    MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDiagnosticLogsClusterLogsStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
    : public MTRCallbackBridge<DiagnosticLogsClusterLogsTransferProtocolAttributeCallback>
{
public:
    MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DiagnosticLogsClusterLogsTransferProtocolAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol value);
};

class MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge
    : public MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
{
public:
    MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback>
{
public:
    MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DiagnosticLogs::LogsTransferProtocol> & value);
};

class MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge
    : public MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge
{
public:
    MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDiagnosticLogsClusterLogsTransferProtocolAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsClusterBootReasonTypeAttributeCallback>
{
public:
    MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsClusterBootReasonTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::BootReasonType value);
};

class MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback>
{
public:
    MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::BootReasonType> & value);
};

class MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralDiagnosticsClusterBootReasonTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>
{
public:
    MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::HardwareFaultType value);
};

class MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>
{
public:
    MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::HardwareFaultType> & value);
};

class MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralDiagnosticsClusterHardwareFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsClusterInterfaceTypeAttributeCallback>
{
public:
    MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsClusterInterfaceTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::InterfaceType value);
};

class MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback>
{
public:
    MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::InterfaceType> & value);
};

class MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralDiagnosticsClusterInterfaceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>
{
public:
    MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::NetworkFaultType value);
};

class MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>
{
public:
    MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::NetworkFaultType> & value);
};

class MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralDiagnosticsClusterNetworkFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>
{
public:
    MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GeneralDiagnostics::RadioFaultType value);
};

class MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
{
public:
    MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>
{
public:
    MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::GeneralDiagnostics::RadioFaultType> & value);
};

class MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge
{
public:
    MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGeneralDiagnosticsClusterRadioFaultTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault value);
};

class MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFault> & value);
};

class MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge
    : public MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThreadNetworkDiagnosticsClusterNetworkFaultAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole value);
};

class MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRole> & value);
};

class MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge
    : public MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThreadNetworkDiagnosticsClusterRoutingRoleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
    : public MTRCallbackBridge<ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>
{
public:
    MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus value);
};

class MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge
    : public MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
{
public:
    MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                            ResponseHandler handler,
                                                                                            MTRActionBlock action,
                                                                                            bool keepAlive = false) :
        MTRCallbackBridge<NullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallback>(queue, handler, action,
                                                                                                          OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::ThreadConnectionStatus> & value);
};

class MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge
{
public:
    MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThreadNetworkDiagnosticsClusterThreadConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause value);
};

class MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                           ResponseHandler handler,
                                                                                           MTRActionBlock action,
                                                                                           bool keepAlive = false) :
        MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallback>(queue, handler, action,
                                                                                                         OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::AssociationFailureCause> & value);
};

class MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge
    : public MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWiFiNetworkDiagnosticsClusterAssociationFailureCauseAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType value);
};

class MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityType> & value);
};

class MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWiFiNetworkDiagnosticsClusterSecurityTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus value);
};

class MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                        ResponseHandler handler,
                                                                                        MTRActionBlock action,
                                                                                        bool keepAlive = false) :
        MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallback>(queue, handler, action,
                                                                                                      OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus> & value);
};

class MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWiFiNetworkDiagnosticsClusterWiFiConnectionStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
    : public MTRCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>
{
public:
    MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType value);
};

class MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge
    : public MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
{
public:
    MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionType> & value);
};

class MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge
{
public:
    MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWiFiNetworkDiagnosticsClusterWiFiVersionTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
    : public MTRCallbackBridge<EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>
{
public:
    MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<EthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType value);
};

class MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge
    : public MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
{
public:
    MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTREthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>
{
public:
    MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateType> & value);
};

class MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge
{
public:
    MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableEthernetNetworkDiagnosticsClusterPHYRateTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
    : public MTRCallbackBridge<AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>
{
public:
    MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         MTRActionBlock action,
                                                                                         bool keepAlive = false) :
        MTRCallbackBridge<AdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus value);
};

class MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge
    : public MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
{
public:
    MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>
{
public:
    MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                                 ResponseHandler handler,
                                                                                                 MTRActionBlock action,
                                                                                                 bool keepAlive = false) :
        MTRCallbackBridge<NullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatus> & value);
};

class MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge
{
public:
    MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAdministratorCommissioningClusterCommissioningWindowStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
    : public MTRCallbackBridge<AdministratorCommissioningClusterStatusCodeAttributeCallback>
{
public:
    MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AdministratorCommissioningClusterStatusCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AdministratorCommissioning::StatusCode value);
};

class MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge
    : public MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
{
public:
    MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAdministratorCommissioningClusterStatusCodeAttributeCallback>
{
public:
    MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableAdministratorCommissioningClusterStatusCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::AdministratorCommissioning::StatusCode> & value);
};

class MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge
    : public MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge
{
public:
    MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAdministratorCommissioningClusterStatusCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge
    : public MTRCallbackBridge<OperationalCredentialsClusterOperationalCertStatusAttributeCallback>
{
public:
    MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<OperationalCredentialsClusterOperationalCertStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::OperationalCredentials::OperationalCertStatus value);
};

class MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackSubscriptionBridge
    : public MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge
{
public:
    MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTROperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableOperationalCredentialsClusterOperationalCertStatusAttributeCallback>
{
public:
    MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                         ResponseHandler handler,
                                                                                         MTRActionBlock action,
                                                                                         bool keepAlive = false) :
        MTRCallbackBridge<NullableOperationalCredentialsClusterOperationalCertStatusAttributeCallback>(queue, handler, action,
                                                                                                       OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::OperationalCredentials::OperationalCertStatus> & value);
};

class MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge
{
public:
    MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableOperationalCredentialsClusterOperationalCertStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
    : public MTRCallbackBridge<GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>
{
public:
    MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<GroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy value);
};

class MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge
    : public MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
{
public:
    MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
    : public MTRCallbackBridge<NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>
{
public:
    MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      MTRActionBlock action,
                                                                                      bool keepAlive = false) :
        MTRCallbackBridge<NullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicy> & value);
};

class MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge
    : public MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge
{
public:
    MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableGroupKeyManagementClusterGroupKeySecurityPolicyAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlAlarmCodeAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlAlarmCodeAttributeCallback>
{
public:
    MTRDoorLockClusterDlAlarmCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlAlarmCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlAlarmCode value);
};

class MTRDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlAlarmCodeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlAlarmCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlAlarmCodeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlAlarmCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlAlarmCode> & value);
};

class MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlAlarmCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlCredentialRuleAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlCredentialRuleAttributeCallback>
{
public:
    MTRDoorLockClusterDlCredentialRuleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlCredentialRuleAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlCredentialRule value);
};

class MTRDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlCredentialRuleAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlCredentialRuleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlCredentialRuleAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlCredentialRuleAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialRule> & value);
};

class MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlCredentialRuleAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlCredentialTypeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlCredentialTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlCredentialTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlCredentialTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlCredentialType value);
};

class MTRDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlCredentialTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlCredentialTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlCredentialTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlCredentialTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlCredentialType> & value);
};

class MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlCredentialTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlDataOperationTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlDataOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlDataOperationType value);
};

class MTRDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlDataOperationTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlDataOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDataOperationType> & value);
};

class MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlDataOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlDoorStateAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlDoorStateAttributeCallback>
{
public:
    MTRDoorLockClusterDlDoorStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlDoorStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlDoorState value);
};

class MTRDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlDoorStateAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlDoorStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlDoorStateAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlDoorStateAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlDoorStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlDoorStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlDoorState> & value);
};

class MTRNullableDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlDoorStateAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlDoorStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlDoorStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlLockDataTypeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlLockDataTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlLockDataTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                            bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlLockDataTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockDataType value);
};

class MTRDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlLockDataTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action,
                                                                        SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlLockDataTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlLockDataTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlLockDataTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockDataType> & value);
};

class MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlLockDataTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlLockOperationTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlLockOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockOperationType value);
};

class MTRDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlLockOperationTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlLockOperationTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockOperationType> & value);
};

class MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlLockOperationTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlLockStateAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlLockStateAttributeCallback>
{
public:
    MTRDoorLockClusterDlLockStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                         bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlLockStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockState value);
};

class MTRDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlLockStateAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action,
                                                                     SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlLockStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlLockStateAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlLockStateAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlLockStateAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlLockStateAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> & value);
};

class MTRNullableDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlLockStateAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlLockStateAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlLockStateAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlLockTypeAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlLockTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlLockTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlLockTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlLockType value);
};

class MTRDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlLockTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlLockTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlLockTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlLockTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlLockTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlLockTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockType> & value);
};

class MTRNullableDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlLockTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlLockTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlLockTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlOperatingModeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlOperatingModeAttributeCallback>
{
public:
    MTRDoorLockClusterDlOperatingModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlOperatingModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperatingMode value);
};

class MTRDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlOperatingModeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlOperatingModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlOperatingModeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlOperatingModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperatingMode> & value);
};

class MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlOperatingModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlOperationErrorAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlOperationErrorAttributeCallback>
{
public:
    MTRDoorLockClusterDlOperationErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlOperationErrorAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperationError value);
};

class MTRDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlOperationErrorAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlOperationErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlOperationErrorAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlOperationErrorAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationError> & value);
};

class MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlOperationErrorAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlOperationSourceAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDlOperationSourceAttributeCallback>
{
public:
    MTRDoorLockClusterDlOperationSourceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlOperationSourceAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlOperationSource value);
};

class MTRDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlOperationSourceAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlOperationSourceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlOperationSourceAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlOperationSourceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlOperationSource> & value);
};

class MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlOperationSourceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlStatusAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlStatusAttributeCallback>
{
public:
    MTRDoorLockClusterDlStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                      bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlStatus value);
};

class MTRDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlStatusAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action,
                                                                  SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlStatusAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlStatus> & value);
};

class MTRNullableDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlStatusAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlUserStatusAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlUserStatusAttributeCallback>
{
public:
    MTRDoorLockClusterDlUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                          bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlUserStatus value);
};

class MTRDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDlUserStatusAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action,
                                                                      SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlUserStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlUserStatusAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserStatus> & value);
};

class MTRNullableDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlUserStatusAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDlUserTypeAttributeCallbackBridge : public MTRCallbackBridge<DoorLockClusterDlUserTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDlUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDlUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DlUserType value);
};

class MTRDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge : public MTRDoorLockClusterDlUserTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDlUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDlUserTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDlUserTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDlUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDlUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlUserType> & value);
};

class MTRNullableDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDlUserTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDlUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDlUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDoorLockOperationEventCodeAttributeCallback>
{
public:
    MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDoorLockOperationEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockOperationEventCode value);
};

class MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDoorLockOperationEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockOperationEventCode> & value);
};

class MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDoorLockOperationEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>
{
public:
    MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode value);
};

class MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockProgrammingEventCode> & value);
};

class MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDoorLockProgrammingEventCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>
{
public:
    MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus value);
};

class MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockSetPinOrIdStatus> & value);
};

class MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDoorLockSetPinOrIdStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDoorLockUserStatusAttributeCallback>
{
public:
    MTRDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDoorLockUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockUserStatus value);
};

class MTRDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDoorLockUserStatusAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                        MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDoorLockUserStatusAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                      keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserStatus> & value);
};

class MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDoorLockUserStatusAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
    : public MTRCallbackBridge<DoorLockClusterDoorLockUserTypeAttributeCallback>
{
public:
    MTRDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<DoorLockClusterDoorLockUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::DoorLock::DoorLockUserType value);
};

class MTRDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge
    : public MTRDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
{
public:
    MTRDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableDoorLockClusterDoorLockUserTypeAttributeCallback>
{
public:
    MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableDoorLockClusterDoorLockUserTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorLockUserType> & value);
};

class MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge
{
public:
    MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableDoorLockClusterDoorLockUserTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringClusterEndProductTypeAttributeCallbackBridge
    : public MTRCallbackBridge<WindowCoveringClusterEndProductTypeAttributeCallback>
{
public:
    MTRWindowCoveringClusterEndProductTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringClusterEndProductTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WindowCovering::EndProductType value);
};

class MTRWindowCoveringClusterEndProductTypeAttributeCallbackSubscriptionBridge
    : public MTRWindowCoveringClusterEndProductTypeAttributeCallbackBridge
{
public:
    MTRWindowCoveringClusterEndProductTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringClusterEndProductTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWindowCoveringClusterEndProductTypeAttributeCallback>
{
public:
    MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableWindowCoveringClusterEndProductTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::WindowCovering::EndProductType> & value);
};

class MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackBridge
{
public:
    MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWindowCoveringClusterEndProductTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRWindowCoveringClusterTypeAttributeCallbackBridge : public MTRCallbackBridge<WindowCoveringClusterTypeAttributeCallback>
{
public:
    MTRWindowCoveringClusterTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                        bool keepAlive = false) :
        MTRCallbackBridge<WindowCoveringClusterTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::WindowCovering::Type value);
};

class MTRWindowCoveringClusterTypeAttributeCallbackSubscriptionBridge : public MTRWindowCoveringClusterTypeAttributeCallbackBridge
{
public:
    MTRWindowCoveringClusterTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action,
                                                                    SubscriptionEstablishedHandler establishedHandler) :
        MTRWindowCoveringClusterTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableWindowCoveringClusterTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableWindowCoveringClusterTypeAttributeCallback>
{
public:
    MTRNullableWindowCoveringClusterTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableWindowCoveringClusterTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::WindowCovering::Type> & value);
};

class MTRNullableWindowCoveringClusterTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableWindowCoveringClusterTypeAttributeCallbackBridge
{
public:
    MTRNullableWindowCoveringClusterTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action,
                                                                            SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableWindowCoveringClusterTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlClusterPumpControlModeAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlClusterPumpControlModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                              keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode value);
};

class MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback>
{
public:
    MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                        ResponseHandler handler,
                                                                                        MTRActionBlock action,
                                                                                        bool keepAlive = false) :
        MTRCallbackBridge<NullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallback>(queue, handler, action,
                                                                                                      OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpControlMode> & value);
};

class MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge
    : public MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge
{
public:
    MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePumpConfigurationAndControlClusterPumpControlModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
    : public MTRCallbackBridge<PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>
{
public:
    MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<PumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode value);
};

class MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge
    : public MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
{
public:
    MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRPumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>
{
public:
    MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                          ResponseHandler handler,
                                                                                          MTRActionBlock action,
                                                                                          bool keepAlive = false) :
        MTRCallbackBridge<NullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallback>(queue, handler, action,
                                                                                                        OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::PumpConfigurationAndControl::PumpOperationMode> & value);
};

class MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge
    : public MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge
{
public:
    MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullablePumpConfigurationAndControlClusterPumpOperationModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatClusterSetpointAdjustModeAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatClusterSetpointAdjustModeAttributeCallback>
{
public:
    MTRThermostatClusterSetpointAdjustModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatClusterSetpointAdjustModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Thermostat::SetpointAdjustMode value);
};

class MTRThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge
    : public MTRThermostatClusterSetpointAdjustModeAttributeCallbackBridge
{
public:
    MTRThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatClusterSetpointAdjustModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThermostatClusterSetpointAdjustModeAttributeCallback>
{
public:
    MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThermostatClusterSetpointAdjustModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::SetpointAdjustMode> & value);
};

class MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge
    : public MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge
{
public:
    MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThermostatClusterSetpointAdjustModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatClusterThermostatControlSequenceAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatClusterThermostatControlSequenceAttributeCallback>
{
public:
    MTRThermostatClusterThermostatControlSequenceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatClusterThermostatControlSequenceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Thermostat::ThermostatControlSequence value);
};

class MTRThermostatClusterThermostatControlSequenceAttributeCallbackSubscriptionBridge
    : public MTRThermostatClusterThermostatControlSequenceAttributeCallbackBridge
{
public:
    MTRThermostatClusterThermostatControlSequenceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatClusterThermostatControlSequenceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThermostatClusterThermostatControlSequenceAttributeCallback>
{
public:
    MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThermostatClusterThermostatControlSequenceAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                               keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatControlSequence> & value);
};

class MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackSubscriptionBridge
    : public MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackBridge
{
public:
    MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThermostatClusterThermostatControlSequenceAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatClusterThermostatRunningModeAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatClusterThermostatRunningModeAttributeCallback>
{
public:
    MTRThermostatClusterThermostatRunningModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatClusterThermostatRunningModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Thermostat::ThermostatRunningMode value);
};

class MTRThermostatClusterThermostatRunningModeAttributeCallbackSubscriptionBridge
    : public MTRThermostatClusterThermostatRunningModeAttributeCallbackBridge
{
public:
    MTRThermostatClusterThermostatRunningModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatClusterThermostatRunningModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThermostatClusterThermostatRunningModeAttributeCallback>
{
public:
    MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThermostatClusterThermostatRunningModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                           keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatRunningMode> & value);
};

class MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackSubscriptionBridge
    : public MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackBridge
{
public:
    MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThermostatClusterThermostatRunningModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRThermostatClusterThermostatSystemModeAttributeCallbackBridge
    : public MTRCallbackBridge<ThermostatClusterThermostatSystemModeAttributeCallback>
{
public:
    MTRThermostatClusterThermostatSystemModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ThermostatClusterThermostatSystemModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Thermostat::ThermostatSystemMode value);
};

class MTRThermostatClusterThermostatSystemModeAttributeCallbackSubscriptionBridge
    : public MTRThermostatClusterThermostatSystemModeAttributeCallbackBridge
{
public:
    MTRThermostatClusterThermostatSystemModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRThermostatClusterThermostatSystemModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableThermostatClusterThermostatSystemModeAttributeCallback>
{
public:
    MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableThermostatClusterThermostatSystemModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Thermostat::ThermostatSystemMode> & value);
};

class MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackSubscriptionBridge
    : public MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackBridge
{
public:
    MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableThermostatClusterThermostatSystemModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFanControlClusterFanModeSequenceTypeAttributeCallbackBridge
    : public MTRCallbackBridge<FanControlClusterFanModeSequenceTypeAttributeCallback>
{
public:
    MTRFanControlClusterFanModeSequenceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<FanControlClusterFanModeSequenceTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::FanControl::FanModeSequenceType value);
};

class MTRFanControlClusterFanModeSequenceTypeAttributeCallbackSubscriptionBridge
    : public MTRFanControlClusterFanModeSequenceTypeAttributeCallbackBridge
{
public:
    MTRFanControlClusterFanModeSequenceTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRFanControlClusterFanModeSequenceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableFanControlClusterFanModeSequenceTypeAttributeCallback>
{
public:
    MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableFanControlClusterFanModeSequenceTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::FanControl::FanModeSequenceType> & value);
};

class MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackBridge
{
public:
    MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableFanControlClusterFanModeSequenceTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRFanControlClusterFanModeTypeAttributeCallbackBridge
    : public MTRCallbackBridge<FanControlClusterFanModeTypeAttributeCallback>
{
public:
    MTRFanControlClusterFanModeTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<FanControlClusterFanModeTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::FanControl::FanModeType value);
};

class MTRFanControlClusterFanModeTypeAttributeCallbackSubscriptionBridge
    : public MTRFanControlClusterFanModeTypeAttributeCallbackBridge
{
public:
    MTRFanControlClusterFanModeTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRFanControlClusterFanModeTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableFanControlClusterFanModeTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableFanControlClusterFanModeTypeAttributeCallback>
{
public:
    MTRNullableFanControlClusterFanModeTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableFanControlClusterFanModeTypeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::FanControl::FanModeType> & value);
};

class MTRNullableFanControlClusterFanModeTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableFanControlClusterFanModeTypeAttributeCallbackBridge
{
public:
    MTRNullableFanControlClusterFanModeTypeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableFanControlClusterFanModeTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterColorLoopActionAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterColorLoopActionAttributeCallback>
{
public:
    MTRColorControlClusterColorLoopActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                 MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterColorLoopActionAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorLoopAction value);
};

class MTRColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterColorLoopActionAttributeCallbackBridge
{
public:
    MTRColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                             MTRActionBlock action,
                                                                             SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterColorLoopActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterColorLoopActionAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterColorLoopActionAttributeCallback>
{
public:
    MTRNullableColorControlClusterColorLoopActionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterColorLoopActionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                       keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopAction> & value);
};

class MTRNullableColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterColorLoopActionAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterColorLoopActionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterColorLoopActionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterColorLoopDirectionAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterColorLoopDirectionAttributeCallback>
{
public:
    MTRColorControlClusterColorLoopDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterColorLoopDirectionAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorLoopDirection value);
};

class MTRColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterColorLoopDirectionAttributeCallbackBridge
{
public:
    MTRColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterColorLoopDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterColorLoopDirectionAttributeCallback>
{
public:
    MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterColorLoopDirectionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorLoopDirection> & value);
};

class MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterColorLoopDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterColorModeAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterColorModeAttributeCallback>
{
public:
    MTRColorControlClusterColorModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterColorModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::ColorMode value);
};

class MTRColorControlClusterColorModeAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterColorModeAttributeCallbackBridge
{
public:
    MTRColorControlClusterColorModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterColorModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterColorModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterColorModeAttributeCallback>
{
public:
    MTRNullableColorControlClusterColorModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterColorModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::ColorMode> & value);
};

class MTRNullableColorControlClusterColorModeAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterColorModeAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterColorModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterColorModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterHueDirectionAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterHueDirectionAttributeCallback>
{
public:
    MTRColorControlClusterHueDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterHueDirectionAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueDirection value);
};

class MTRColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterHueDirectionAttributeCallbackBridge
{
public:
    MTRColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterHueDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterHueDirectionAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterHueDirectionAttributeCallback>
{
public:
    MTRNullableColorControlClusterHueDirectionAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterHueDirectionAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueDirection> & value);
};

class MTRNullableColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterHueDirectionAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterHueDirectionAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterHueDirectionAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterHueMoveModeAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterHueMoveModeAttributeCallback>
{
public:
    MTRColorControlClusterHueMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterHueMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueMoveMode value);
};

class MTRColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterHueMoveModeAttributeCallbackBridge
{
public:
    MTRColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterHueMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterHueMoveModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterHueMoveModeAttributeCallback>
{
public:
    MTRNullableColorControlClusterHueMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterHueMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueMoveMode> & value);
};

class MTRNullableColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterHueMoveModeAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterHueMoveModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterHueMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterHueStepModeAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterHueStepModeAttributeCallback>
{
public:
    MTRColorControlClusterHueStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterHueStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::HueStepMode value);
};

class MTRColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterHueStepModeAttributeCallbackBridge
{
public:
    MTRColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterHueStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterHueStepModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterHueStepModeAttributeCallback>
{
public:
    MTRNullableColorControlClusterHueStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterHueStepModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::HueStepMode> & value);
};

class MTRNullableColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterHueStepModeAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterHueStepModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterHueStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterSaturationMoveModeAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterSaturationMoveModeAttributeCallback>
{
public:
    MTRColorControlClusterSaturationMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterSaturationMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::SaturationMoveMode value);
};

class MTRColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterSaturationMoveModeAttributeCallbackBridge
{
public:
    MTRColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterSaturationMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterSaturationMoveModeAttributeCallback>
{
public:
    MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterSaturationMoveModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationMoveMode> & value);
};

class MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterSaturationMoveModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRColorControlClusterSaturationStepModeAttributeCallbackBridge
    : public MTRCallbackBridge<ColorControlClusterSaturationStepModeAttributeCallback>
{
public:
    MTRColorControlClusterSaturationStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ColorControlClusterSaturationStepModeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ColorControl::SaturationStepMode value);
};

class MTRColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge
    : public MTRColorControlClusterSaturationStepModeAttributeCallbackBridge
{
public:
    MTRColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRColorControlClusterSaturationStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableColorControlClusterSaturationStepModeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableColorControlClusterSaturationStepModeAttributeCallback>
{
public:
    MTRNullableColorControlClusterSaturationStepModeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableColorControlClusterSaturationStepModeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ColorControl::SaturationStepMode> & value);
};

class MTRNullableColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge
    : public MTRNullableColorControlClusterSaturationStepModeAttributeCallbackBridge
{
public:
    MTRNullableColorControlClusterSaturationStepModeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableColorControlClusterSaturationStepModeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
    : public MTRCallbackBridge<IlluminanceMeasurementClusterLightSensorTypeAttributeCallback>
{
public:
    MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<IlluminanceMeasurementClusterLightSensorTypeAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::IlluminanceMeasurement::LightSensorType value);
};

class MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge
    : public MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
{
public:
    MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback>
{
public:
    MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorType> & value);
};

class MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge
    : public MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge
{
public:
    MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableIlluminanceMeasurementClusterLightSensorTypeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelClusterChannelStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ChannelClusterChannelStatusEnumAttributeCallback>
{
public:
    MTRChannelClusterChannelStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ChannelClusterChannelStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Channel::ChannelStatusEnum value);
};

class MTRChannelClusterChannelStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRChannelClusterChannelStatusEnumAttributeCallbackBridge
{
public:
    MTRChannelClusterChannelStatusEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action,
                                                                          SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelClusterChannelStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableChannelClusterChannelStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableChannelClusterChannelStatusEnumAttributeCallback>
{
public:
    MTRNullableChannelClusterChannelStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableChannelClusterChannelStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::ChannelStatusEnum> & value);
};

class MTRNullableChannelClusterChannelStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableChannelClusterChannelStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableChannelClusterChannelStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableChannelClusterChannelStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ChannelClusterLineupInfoTypeEnumAttributeCallback>
{
public:
    MTRChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ChannelClusterLineupInfoTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::Channel::LineupInfoTypeEnum value);
};

class MTRChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
{
public:
    MTRChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableChannelClusterLineupInfoTypeEnumAttributeCallback>
{
public:
    MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableChannelClusterLineupInfoTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::Channel::LineupInfoTypeEnum> & value);
};

class MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableChannelClusterLineupInfoTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<TargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback>
{
public:
    MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<TargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TargetNavigator::TargetNavigatorStatusEnum value);
};

class MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge
{
public:
    MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback>
{
public:
    MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      MTRActionBlock action,
                                                                                      bool keepAlive = false) :
        MTRCallbackBridge<NullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::TargetNavigator::TargetNavigatorStatusEnum> & value);
};

class MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableTargetNavigatorClusterTargetNavigatorStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback>
{
public:
    MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaPlayback::MediaPlaybackStatusEnum value);
};

class MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge
{
public:
    MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback>
{
public:
    MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                                keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::MediaPlaybackStatusEnum> & value);
};

class MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableMediaPlaybackClusterMediaPlaybackStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<MediaPlaybackClusterPlaybackStateEnumAttributeCallback>
{
public:
    MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<MediaPlaybackClusterPlaybackStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaPlayback::PlaybackStateEnum value);
};

class MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge
    : public MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
{
public:
    MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                MTRActionBlock action,
                                                                                SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback>
{
public:
    MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableMediaPlaybackClusterPlaybackStateEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::PlaybackStateEnum> & value);
};

class MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge
{
public:
    MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableMediaPlaybackClusterPlaybackStateEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRMediaInputClusterInputTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<MediaInputClusterInputTypeEnumAttributeCallback>
{
public:
    MTRMediaInputClusterInputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                             bool keepAlive = false) :
        MTRCallbackBridge<MediaInputClusterInputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::MediaInput::InputTypeEnum value);
};

class MTRMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRMediaInputClusterInputTypeEnumAttributeCallbackBridge
{
public:
    MTRMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                         MTRActionBlock action,
                                                                         SubscriptionEstablishedHandler establishedHandler) :
        MTRMediaInputClusterInputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableMediaInputClusterInputTypeEnumAttributeCallback>
{
public:
    MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                     MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableMediaInputClusterInputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                   keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::MediaInput::InputTypeEnum> & value);
};

class MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableMediaInputClusterInputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRKeypadInputClusterCecKeyCodeAttributeCallbackBridge
    : public MTRCallbackBridge<KeypadInputClusterCecKeyCodeAttributeCallback>
{
public:
    MTRKeypadInputClusterCecKeyCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputClusterCecKeyCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::KeypadInput::CecKeyCode value);
};

class MTRKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge
    : public MTRKeypadInputClusterCecKeyCodeAttributeCallbackBridge
{
public:
    MTRKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRKeypadInputClusterCecKeyCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge
    : public MTRCallbackBridge<NullableKeypadInputClusterCecKeyCodeAttributeCallback>
{
public:
    MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableKeypadInputClusterCecKeyCodeAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::CecKeyCode> & value);
};

class MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge
    : public MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge
{
public:
    MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableKeypadInputClusterCecKeyCodeAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<KeypadInputClusterKeypadInputStatusEnumAttributeCallback>
{
public:
    MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                      MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<KeypadInputClusterKeypadInputStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                    keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::KeypadInput::KeypadInputStatusEnum value);
};

class MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge
{
public:
    MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableKeypadInputClusterKeypadInputStatusEnumAttributeCallback>
{
public:
    MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableKeypadInputClusterKeypadInputStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                            keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::KeypadInput::KeypadInputStatusEnum> & value);
};

class MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableKeypadInputClusterKeypadInputStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherClusterContentLaunchStatusEnumAttributeCallback>
{
public:
    MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                            MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherClusterContentLaunchStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                          keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::ContentLaunchStatusEnum value);
};

class MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge
{
public:
    MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableContentLauncherClusterContentLaunchStatusEnumAttributeCallback>
{
public:
    MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                    MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableContentLauncherClusterContentLaunchStatusEnumAttributeCallback>(queue, handler, action,
                                                                                                  OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ContentLaunchStatusEnum> & value);
};

class MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableContentLauncherClusterContentLaunchStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherClusterMetricTypeEnumAttributeCallback>
{
public:
    MTRContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherClusterMetricTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::MetricTypeEnum value);
};

class MTRContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
{
public:
    MTRContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableContentLauncherClusterMetricTypeEnumAttributeCallback>
{
public:
    MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableContentLauncherClusterMetricTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::MetricTypeEnum> & value);
};

class MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableContentLauncherClusterMetricTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRContentLauncherClusterParameterEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ContentLauncherClusterParameterEnumAttributeCallback>
{
public:
    MTRContentLauncherClusterParameterEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                  MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ContentLauncherClusterParameterEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ContentLauncher::ParameterEnum value);
};

class MTRContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge
    : public MTRContentLauncherClusterParameterEnumAttributeCallbackBridge
{
public:
    MTRContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                              MTRActionBlock action,
                                                                              SubscriptionEstablishedHandler establishedHandler) :
        MTRContentLauncherClusterParameterEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableContentLauncherClusterParameterEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableContentLauncherClusterParameterEnumAttributeCallback>
{
public:
    MTRNullableContentLauncherClusterParameterEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                          MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableContentLauncherClusterParameterEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                        keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::ContentLauncher::ParameterEnum> & value);
};

class MTRNullableContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableContentLauncherClusterParameterEnumAttributeCallbackBridge
{
public:
    MTRNullableContentLauncherClusterParameterEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableContentLauncherClusterParameterEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<AudioOutputClusterOutputTypeEnumAttributeCallback>
{
public:
    MTRAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                               MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<AudioOutputClusterOutputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::AudioOutput::OutputTypeEnum value);
};

class MTRAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
{
public:
    MTRAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action,
                                                                           SubscriptionEstablishedHandler establishedHandler) :
        MTRAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableAudioOutputClusterOutputTypeEnumAttributeCallback>
{
public:
    MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableAudioOutputClusterOutputTypeEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                     keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::AudioOutput::OutputTypeEnum> & value);
};

class MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge
{
public:
    MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableAudioOutputClusterOutputTypeEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback>
{
public:
    MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                      ResponseHandler handler,
                                                                                      MTRActionBlock action,
                                                                                      bool keepAlive = false) :
        MTRCallbackBridge<ApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback>(queue, handler, action,
                                                                                                    OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplicationLauncher::ApplicationLauncherStatusEnum value);
};

class MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge
{
public:
    MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback>
{
public:
    MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge(dispatch_queue_t queue,
                                                                                              ResponseHandler handler,
                                                                                              MTRActionBlock action,
                                                                                              bool keepAlive = false) :
        MTRCallbackBridge<NullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallback>(
            queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(
        void * context,
        const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::ApplicationLauncherStatusEnum> & value);
};

class MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableApplicationLauncherClusterApplicationLauncherStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<ApplicationBasicClusterApplicationStatusEnumAttributeCallback>
{
public:
    MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                           MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<ApplicationBasicClusterApplicationStatusEnumAttributeCallback>(queue, handler, action, OnSuccessFn,
                                                                                         keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum value);
};

class MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
{
public:
    MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback>
{
public:
    MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableApplicationBasicClusterApplicationStatusEnumAttributeCallback>(queue, handler, action,
                                                                                                 OnSuccessFn, keepAlive){};

    static void
    OnSuccessFn(void * context,
                const chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum> & value);
};

class MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge
{
public:
    MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackSubscriptionBridge(
        dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableApplicationBasicClusterApplicationStatusEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRTestClusterClusterSimpleEnumAttributeCallbackBridge
    : public MTRCallbackBridge<TestClusterClusterSimpleEnumAttributeCallback>
{
public:
    MTRTestClusterClusterSimpleEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action,
                                                           bool keepAlive = false) :
        MTRCallbackBridge<TestClusterClusterSimpleEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context, chip::app::Clusters::TestCluster::SimpleEnum value);
};

class MTRTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge
    : public MTRTestClusterClusterSimpleEnumAttributeCallbackBridge
{
public:
    MTRTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                       MTRActionBlock action,
                                                                       SubscriptionEstablishedHandler establishedHandler) :
        MTRTestClusterClusterSimpleEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};

class MTRNullableTestClusterClusterSimpleEnumAttributeCallbackBridge
    : public MTRCallbackBridge<NullableTestClusterClusterSimpleEnumAttributeCallback>
{
public:
    MTRNullableTestClusterClusterSimpleEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                   MTRActionBlock action, bool keepAlive = false) :
        MTRCallbackBridge<NullableTestClusterClusterSimpleEnumAttributeCallback>(queue, handler, action, OnSuccessFn, keepAlive){};

    static void OnSuccessFn(void * context,
                            const chip::app::DataModel::Nullable<chip::app::Clusters::TestCluster::SimpleEnum> & value);
};

class MTRNullableTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge
    : public MTRNullableTestClusterClusterSimpleEnumAttributeCallbackBridge
{
public:
    MTRNullableTestClusterClusterSimpleEnumAttributeCallbackSubscriptionBridge(dispatch_queue_t queue, ResponseHandler handler,
                                                                               MTRActionBlock action,
                                                                               SubscriptionEstablishedHandler establishedHandler) :
        MTRNullableTestClusterClusterSimpleEnumAttributeCallbackBridge(queue, handler, action, true),
        mEstablishedHandler(establishedHandler)
    {}

    static void OnSubscriptionEstablished(void * context);

private:
    SubscriptionEstablishedHandler mEstablishedHandler;
};
